Nit*_*esh 6 c# event-handling winforms
在我的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
}
}
Run Code Online (Sandbox Code Playgroud)
dig*_*All 32
你可以使用这个sender参数.这就是引发click事件的Control(在本例中为按钮):
var button = (Button)sender;
button.Name ...
Run Code Online (Sandbox Code Playgroud)
注意:如果您已将其他控件(例如面板等)订阅到同一事件处理程序,则可以使用该as运算符检查发件人是否为按钮:
var button = sender as Button;
if (button != null)
{
button.Name ...
...
}
Run Code Online (Sandbox Code Playgroud)
事件处理程序的第一个参数“ object sender”包含引发/触发事件的对象/控件的引用。
var button = sender as Button;
Run Code Online (Sandbox Code Playgroud)