如何确定哪个按钮称为事件处理程序?

xbo*_*nez 2 c# winforms

我有一个带有两个按钮的表单:btn_oldFile和btn_newFile.两个按钮,点击调用函数btnOnClick:

btn_oldFile.Click += btnOnClick;
btn_newFile.Click += btnOnClick;

protected void OldFileBrowse_Click(object sender, EventArgs args)
        {
            //if btn_oldFile called
                // print to tbx_OldFile
            //else
                //print to tbx_NewFile
        }
Run Code Online (Sandbox Code Playgroud)

在大多数情况下,除了为变量赋值之外,btnOnClick都是做同样的事情,无论哪个按钮自己调用.如果btn_oldFile调用该方法,我将一些文本打印到文本框:tbx_OldFile,而如果btn_newFile调用它,则文本将打印到tbx_NewFile.

如何确定哪个按钮是调用该方法的按钮?

Ale*_*ide 9

引发事件的对象作为sender参数传递给事件处理程序,因此您可以将其强制转换为正确的类型以访问它.

protected void OldFileBrowse_Click(object sender, EventArgs args)
{
    Button btn = (Button)sender;
}
Run Code Online (Sandbox Code Playgroud)

编辑:然后您可以使用基本的if语句来检查它是哪个按钮.

if (btn == btn_oldFile) // etc..
Run Code Online (Sandbox Code Playgroud)