我有几个要点击的按钮,以及所有相同的功能(我想要创建),它们只是因控制器的名称而不同。例如:
private void markX()
{
buttonName.Text = "X";
buttonName.ForeColor = System.Drawing.Color.Red;
}
如何将函数中修改的按钮对象传递给函数的参数?
答案 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);
}