来自动态创建的事件处理程序的访问控制属性

时间:2011-06-24 15:03:11

标签: c# winforms button event-handling

我正在开发一个C#WinForms应用程序。在FormLoad事件中,我动态创建并添加到表单100按钮,没有文字,但名称如button1button2等。另外,在这些按钮上创建后,我动态链接ButtonClick事件的唯一事件处理程序。如何从事件处理程序(更具体地说是按钮名称)中访问按钮的属性? 如果我使用this.Name,我会得到表单的名称,而不是按钮的名称。

后来的编辑:(对于那些可能在这里寻找解决方案的人而言)

private void function1()
{
    Button a = new Button();

    a.Name = "button" + (i * j).ToString();
    a.Click += new EventHandler(OnFieldButtonClicked);
}

private void OnFieldButtonClicked(object sender, EventArgs e)
{
    Button button = (Button)sender;
    MessageBox.Show(button.Name);
}

1 个答案:

答案 0 :(得分:6)

sender参数是事件处理程序封装触发事件的对象的实例:

Button button = (Button) sender;
String text = button.Text;