On form1
我想存储调用此表单的按钮名称,以便根据按钮点击执行一些代码
button bt1=new button();
button bt2=new button();
private void b1_click(object sender, eventargs e)
{
form1 f1=new form1();
f1.show();
}
private void b2_click(object sender, eventargs e)
{
form1 f1=new form1();
f1.show();
}
答案 0 :(得分:0)
有多种方法可以做到这一点,我建议采用以下方法之一
使用表单构造函数:
即
form1 f1 = new form1("MyButtonName");
然后在表单
的构造函数中public form1(string buttonName)
{
this.ButtonName = buttonName;
}
或手动设置属性
form1 f1 = new form1();
f1.ButtonName = "MyButtonName";
我更喜欢使用前者,因为它会强制您指定创建新表单的按钮。
注意:您可以将属性名称更改为您喜欢的任何名称。
答案 1 :(得分:0)
在form1中添加名为CallerName的属性或成员。
在构造函数中设置它。
答案 2 :(得分:0)
如果你想只提供一个参数的新表格,我同意问题的好解决方案是用johan显示的一个参数创建构造函数。
如果要在显示表单之前对表单进行更多更改,可以在表单上创建属性,同时设置,设置表单属性或方法。 当你需要修改一个在代码中多个地方使用的表单的行为时,这很好。
例如,由具有默认构造函数的属性修改的表单:
public class MyForm : Form
{
public string HeaderText
{
get {return this.Text;}
set {this.Text = value;}
}
private MyLayoutEnum _LayoutStyle;
public MyLayoutEnum LayoutStyle
{
get
{
return this._LayoutStyle;
}
set
{
this._LayoutStyle = value;
switch (value)
{
case MyLayoutEnum.Basic:
{
//do work
break;
}
case MyLayoutEnum.Advanced:
{
//do work
break;
}
default:
{
//unsupported case - for example
break;
}
}
}
}
}
public enum MyLayoutEnum : int
{
None = 0,
Basic = 1,
Advanced = 2
}