如何将按钮对象传递给函数

时间:2014-09-17 14:35:42

标签: c#

我有几个要点击的按钮,以及所有相同的功能(我想要创建),它们只是因控制器的名称而不同。例如:

private void markX()
        {
            buttonName.Text = "X";
            buttonName.ForeColor = System.Drawing.Color.Red;
        }

如何将函数中修改的按钮对象传递给函数的参数?

4 个答案:

答案 0 :(得分:2)

将其设为Click事件处理程序,将其附加到每个按钮,然后使用sender参数作为更改按钮。

void button_Click(Object sender,  EventArgs e)
{
    var button = sender as Button;
    if(button != null)
    {
        button.Text = "X";
        button.ForeColor = System.Drawing.Color.Red;
    }

}

答案 1 :(得分:1)

您不需要传递按钮的名称,只需要将类型为button的对象作为参数传递给您的方法。

private void markX(Button b)
{
    b.Text = "Text";
    b.Foreground = System.Drawing.Color.Red;
}

答案 2 :(得分:0)

使用"发件人":

private void Button_click(object sender, EventArgs e)
{
     ((Button)sender).Text = "X";
}

发件人持有事件调用者的实例。

答案 3 :(得分:-1)

按钮单击事件的单击处理程序具有以下对象。

      Object sender
      EventArgs e

这将为您提供单击的Button的名称,并将其传递给您的函数。

      ((Button)sender).Tag

以下是一些示例代码

      private void Button_Clicked(Object sender, EventArgs e)
      {

       string name = ((Button)sender).Tag;

       markX(name);
      }