如何在从类创建按钮时检查单击方法?

时间:2014-06-15 09:34:33

标签: c# button timer click

我正在使用Tabcontrol,我为所有新的Tabpages创建了一个类。 例如,当我打开一个新的Tabpage时,该类会创建控件并放置它们。

bttn1 = new Button();
bttn1.Name = "button1";
bttn1.Text = "Start";
bttn1.Location = new Point(3, 405);
bttn1.Size = new Size(75, 23);
tp.Controls.Add(bttn1);

所以我的问题是如何检查是否点击了此按钮?

另外我的另一个问题与Timer tick事件相同。

1 个答案:

答案 0 :(得分:1)

您可以从代码中轻松附加到按钮的Click事件:

bttn1.Click += new EventHandler(butt1_Click);

这是处理程序:

void button1_Click(object sender, EventArgs e)
{
    // ...
}

当您键入Click +=时,Visual Studio将为您提供帮助。键入+=后,按两次 Tab 键以获取处理程序。


我希望您为此创建了UserControl,或者对TabPage类进行了细分以创建控件。您应该通过您创建的新事件公开此新创建的类的按钮的Click事件:

public class MyTabPage : TabPage
{
    private Button bttn1;

    public event EventHandler Button1Clicked;

    public MyTabPage()
    {
        bttn1 = new Button();
        bttn1.Name = "button1";
        bttn1.Text = "Start";
        bttn1.Location = new Point(3, 405);
        bttn1.Size = new Size(75, 23);
        bttn1.Click += bttn1_Click;
        this.Controls.Add(bttn1);
    }

    void bttn1_Click(object sender, EventArgs e)
    {
        OnButton1Clicked();
    }

    protected virtual void OnButton1Clicked()
    {
        var h = Button1Clicked;
        if (h != null)
            h(this, EventArgs.Empty);
    }
}

现在,当您创建MyTabPage的实例时,可以将处理程序附加到Button1Clicked事件:

MyTabPage page = new MyTabPage();
page.Button1Clicked += page_Button1Clicked;
tabControl.TabPages.Add(page);

...

void page_Button1Clicked(object sender, EventArgs e)
{
}