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

Adr*_*ica 2 c# button event-handling winforms

我正在开发一个C#WinForms应用程序.在FormLoad事件中,我动态创建并添加到表单100按钮没有文本,但具有类似button1,button2等等.此外,在这些按钮,创建后,我动态链接事件的唯一事件处理程序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);
}
Run Code Online (Sandbox Code Playgroud)

Akr*_*hda 6

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

Button button = (Button) sender;
String text = button.Text;
Run Code Online (Sandbox Code Playgroud)