存储启动操作的按钮的属性
本文关键字:按钮 属性 操作 启动 存储 | 更新日期: 2023-09-27 18:30:15
在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();
}
在 form1 中添加一个名为 CallerName 的属性或成员。
在构造函数中设置它。
有多种方法可以做到这一点,我建议以下方法之一
使用表单构造函数:
即
form1 f1 = new form1("MyButtonName");
然后在窗体的构造函数中
public form1(string buttonName)
{
this.ButtonName = buttonName;
}
或手动设置属性
form1 f1 = new form1();
f1.ButtonName = "MyButtonName";
我更喜欢使用前者,因为它强制您指定创建新表单的按钮。
注意:您可以将属性名称更改为您喜欢的任何名称。
如果您只想提供一个参数的新形式,我同意问题的良好解决方案是创建一个参数的构造函数,如 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
}