获取事件的控件名称

在我的C#Windows窗体表单中,我有一些动态生成的按钮。 我在click事件上分配了以下方法。 是否可以获取触发事件的按钮的名称?

private void btnBrowsDoc_Click(object sender, EventArgs e) { try { if (openFileDialog1.ShowDialog().Equals(DialogResult.OK)) { gbxDocument.Controls["txtDocument" + count].Text = openFileDialog1.FileName; } else { return; } } catch (Exception ex) { //handle the exception } } 

您可以使用sender参数。 这就是提升click事件的Control(在本例中为按钮):

 var button = (Button)sender; button.Name ... 

注意:如果您已将其他控件(例如面板等)订阅到同一事件处理程序,则可以使用as运算符检查发件人是否为按钮:

 var button = sender as Button; if (button != null) { button.Name ... ... } 

事件处理程序的第一个参数“ object sender ”包含引发/触发事件的对象/控件的引用。

 var button = sender as Button;