存储启动操作的按钮的属性

本文关键字:按钮 属性 操作 启动 存储 | 更新日期: 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
}