发生鼠标按下事件时的按钮标识



我有代码动态添加一些按钮,这些按钮具有鼠标按下事件。当我单击按钮时,调用了鼠标向下函数。我想确定我在此事件函数中单击的按钮。Button.Name 属性是有限的字符串值。

确切地说,我想要更低的代码。

...
Button btnTest = new Button();
btnTest.identificationvalue="111.";
btnTest.MouseDown+=new MouseButtonEventHandler(deletec);
...
private void deletec(object sender, RoutedEventArgs e)  
{
    string idvalue=((Button)sender).identificationvalue;
    if ( idvalue== "111.")
    {
    }
    else if (idvalue == "110.")
    {
    }
    ...
}
...

根据我对你的问题的解释,你希望每个按钮都有一个唯一的标识符,可用于确定在deletec方法中分配给sender的按钮。为此,我将使用 Button.Tag 属性,如 MSDN 参考页(Control.Tag 属性(中所述,该属性"获取或设置包含有关控件的数据的对象"。(编辑:这是我最初写这个答案时,Won Hyoung Lee在评论中提出的。

另一种可能性是使用 Button.Text 属性,尽管这取决于应用程序的上下文。

此外,如果要采用这种方法,而不是使用 if-else 语句,使用 switch 语句会更干净,即:

switch (id)
{
    case 111:
        // do something
        break;
    case 112:
        // do something else
        break;
    ...
}

最新更新