如何获得一种简单的方法来验证按钮是否被点击,如果是,请更改它的文本?

时间:2014-05-23 14:30:46

标签: c# button panel

我有一个面板,我有很多按钮。有没有办法可以检查是否点击了这些按钮,如果是,则更改该特定按钮的文字?

我一直在四处寻找,直到现在我才知道这是

foreach (Control button in panel1.Controls)
{
    if ( button.Click == ??? ) //I can't use '==', 
                                //but I don't know what to do here
    {
        //changing the text would happen here
    }   
}

有人可以帮助我吗?

2 个答案:

答案 0 :(得分:3)

您可以让所有按钮使用相同的点击事件处理程序:

protected void Button_Clicked(object sender, EventArgs e)
{
    ((Button) sender).Text = "Insert Text Here";
}

在你的构造函数中:

this.Button1.Click += new System.EventHandler(this.Button_Clicked);
this.Button2.Click += new System.EventHandler(this.Button_Clicked);

答案 1 :(得分:3)

您可以做的最简单的事情是将相同的事件处理程序附加到Buttons内的所有Panel 点击事件。

var buttons = panel1.Controls.OfType<Button>();


foreach(var btn in buttons)
      btn.Click +=  Button_Click;

private void Button_Click(object sender, EventArgs e)
{
   var btn = sender as Button;
   if(btn != null) btn.Text = "Something else";
}

或者您可以使用lambda语句而不是声明单独的方法:

var buttons = panel1.Controls.OfType<Button>();


foreach(var btn in buttons)
      btn.Click +=  (s,e) => ((Button)s).Text = "Clicked";