我有代码动态添加一些按钮,这些按钮具有鼠标按下事件。当我单击按钮时,调用了鼠标向下函数。我想确定我在此事件函数中单击的按钮。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;
...
}