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

本文关键字:程序 访问控制 属性 事件处理 动态 创建 | 更新日期: 2023-09-27 18:00:11

我正在开发一个C#WinForms应用程序。在FormLoad事件中,我动态地创建并添加到表单100中的按钮,没有文本,但名称为button1button2等。此外,在创建这些按钮后,我会将ButtonClick事件的唯一事件处理程序动态链接到这些按钮上。如何从事件处理程序中访问按钮的属性(更具体地说是按钮名称)?如果我用这个。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);
}

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

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

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