获取事件的控件名称

本文关键字:控件 事件 获取 | 更新日期: 2023-09-27 18:10:33

在我的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事件的控件(在本例中为按钮):

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

注意:如果您订阅了其他控件(例如面板等)到相同的事件处理程序,您可以使用as操作符检查发送者是否为按钮:

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

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

var button = sender as Button;