按下按钮创建对象实例
Create instances of objects at the push of a button
当按下右侧面板上的按钮时,我希望在蓝色面板中生成一个图像实例。我熟悉 OOP 但不熟悉 windows 表单,因此不确定如何创建对象并以这种方式实例化它。我将如何创建一个父级 class 来保存这样的对象,只要在 windows 形式的 c# 中按下按钮就会生成这样的对象?
在构造函数中
this.button1.Click += new System.EventHandler(this.button1_Click);
在点击事件中
private void button1_Click(object sender, EventArgs e)
{
Control lastPanelContol = null;
if (panel1.Controls.Count > 0)
lastPanelContol = panel1.Controls[panel1.Controls.Count - 1];
var newButton = new Button
{
Name = "btnDynamic" + panel1.Controls.Count,
Text = "btnDynamic" + panel1.Controls.Count,
Left = 20,
Width = 100,
Top = lastPanelContol == null ? 20 : lastPanelContol.Top + lastPanelContol.Height + 20
};
panel1.Controls.Add(newButton);
}
您可以使用此代码:
class Gates
{
public Button BtnNOT()
{
Button btnNOT = new Button();
btnNOT.Width = 100;
btnNOT.Height = 50;
btnNOT.Text = "some text...";
btnNOT.Image = some Image...;
// And what you want
return btnNOT;
}
public Button BtnAND() { ... }
public Button BtnOR() { ... }
// And other gates...
}
然后当你点击右侧面板中的按钮时,这段代码运行:
Gates gates = new Gates();
bluePanel.Controls.Add(gates.BtnNOT());
希望对你有帮助
如果您只想显示系统中的图像,请在单击按钮时显示在蓝色面板中。
此示例创建一个图像名称字符串数组,并允许您定位图像名称,以便在您单击按钮时在蓝色面板中显示图像。
假设您的蓝色面板名称是 'panel1',包含按钮的面板是 'panel2',您的按钮名称是 'button1'。
当您点击按钮时,它会显示您在 pics[] 数组中设置的图像。
private void button1_Click(object sender, EventArgs e)
{
ShowMyImage();
}
private void ShowMyImage()
{
string[] pics = new string[2];
pics[0] = "E:\images\image0.jpg";
pics[1] = "E:\images\image1.jpg";
var picbox = new PictureBox();
picbox.Image = Bitmap.FromFile(@pics[0]);
picbox.Dock = DockStyle.Fill;
panel1.Controls.Add(picbox);
}
当按下右侧面板上的按钮时,我希望在蓝色面板中生成一个图像实例。我熟悉 OOP 但不熟悉 windows 表单,因此不确定如何创建对象并以这种方式实例化它。我将如何创建一个父级 class 来保存这样的对象,只要在 windows 形式的 c# 中按下按钮就会生成这样的对象?
在构造函数中
this.button1.Click += new System.EventHandler(this.button1_Click);
在点击事件中
private void button1_Click(object sender, EventArgs e)
{
Control lastPanelContol = null;
if (panel1.Controls.Count > 0)
lastPanelContol = panel1.Controls[panel1.Controls.Count - 1];
var newButton = new Button
{
Name = "btnDynamic" + panel1.Controls.Count,
Text = "btnDynamic" + panel1.Controls.Count,
Left = 20,
Width = 100,
Top = lastPanelContol == null ? 20 : lastPanelContol.Top + lastPanelContol.Height + 20
};
panel1.Controls.Add(newButton);
}
您可以使用此代码:
class Gates
{
public Button BtnNOT()
{
Button btnNOT = new Button();
btnNOT.Width = 100;
btnNOT.Height = 50;
btnNOT.Text = "some text...";
btnNOT.Image = some Image...;
// And what you want
return btnNOT;
}
public Button BtnAND() { ... }
public Button BtnOR() { ... }
// And other gates...
}
然后当你点击右侧面板中的按钮时,这段代码运行:
Gates gates = new Gates();
bluePanel.Controls.Add(gates.BtnNOT());
希望对你有帮助
如果您只想显示系统中的图像,请在单击按钮时显示在蓝色面板中。
此示例创建一个图像名称字符串数组,并允许您定位图像名称,以便在您单击按钮时在蓝色面板中显示图像。
假设您的蓝色面板名称是 'panel1',包含按钮的面板是 'panel2',您的按钮名称是 'button1'。
当您点击按钮时,它会显示您在 pics[] 数组中设置的图像。
private void button1_Click(object sender, EventArgs e)
{
ShowMyImage();
}
private void ShowMyImage()
{
string[] pics = new string[2];
pics[0] = "E:\images\image0.jpg";
pics[1] = "E:\images\image1.jpg";
var picbox = new PictureBox();
picbox.Image = Bitmap.FromFile(@pics[0]);
picbox.Dock = DockStyle.Fill;
panel1.Controls.Add(picbox);
}