0

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();
}
4

3 回答 3

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
}
于 2013-09-04T11:06:22.090 回答
0

在 form1 中添加一个名为 CallerName 的属性或成员。

在构造函数中设置它。

于 2013-09-04T07:28:47.467 回答
0

有多种方法可以做到这一点,我建议以下方法之一

使用表单构造函数:

IE

form1 f1 = new form1("MyButtonName");

然后在表单的构造函数中

public form1(string buttonName)
{
    this.ButtonName = buttonName;
}

或手动设置属性

form1 f1 = new form1();
f1.ButtonName = "MyButtonName";

我更喜欢使用前者,因为它会强制您指定创建新表单的按钮。

注意:您可以将属性名称更改为您喜欢的任何名称。

于 2013-09-04T07:17:19.277 回答