我有动态添加一些按钮的代码,这些按钮有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.")
{
}
...
}
...
答案 0 :(得分:1)
根据我对您的问题的解释,您希望每个按钮都有一个唯一的标识符,可用于确定sender
方法中哪个按钮分配给deletec
。为此,我将使用Button.Tag
属性,如MSDN参考页(Control.Tag Property)中所述,"获取或设置包含控件数据的对象。&#34 ; (编辑:这是Won Hyoung Lee在我最初撰写此答案时的评论中提出的。)
另一种可能性是使用Button.Text
属性,尽管这取决于应用程序的上下文。
此外,如果要采用这种方法,而不是使用if-else语句,那么使用switch语句会更清晰,即:
switch (id)
{
case 111:
// do something
break;
case 112:
// do something else
break;
...
}