在我的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
}
}
答案 0 :(得分:32)
您可以使用sender
参数。这就是提升点击事件的Control(在这种情况下是按钮):
var button = (Button)sender;
button.Name ...
N.B。:如果您已将其他控件(例如面板等)订阅到同一事件处理程序,则可以使用as
运算符检查发件人是否为按钮:
var button = sender as Button;
if (button != null)
{
button.Name ...
...
}
答案 1 :(得分:3)
event handler的第一个参数“object sender
”包含引发/触发事件的对象/控件的引用。
var button = sender as Button;