-2

我有代码动态添加一些按钮,这些按钮有 mousedown 事件。当我单击按钮时,调用 mousedown 函数。我想确定我在此事件函数中单击的按钮。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.")
    {

    }
    ...
}
...
4

1 回答 1

1

根据我对您问题的解释,您希望每个按钮都有一个唯一标识符,可用于确定senderdeletec方法中分配给哪个按钮。为此,我将使用该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;
    ...
}
于 2014-12-21T05:02:22.567 回答