我正在创建7个按钮
当我创建按钮时,我试图拥有一个事件处理程序,而不是通过交换机处理一个方法中的所有点击。理想情况下,我希望传递一个带有按钮的id,该按钮指示被点击的内容,与此
的解决方案相对void pdfButton_Click(object sender, EventArgs e)
{
Button b = (Button)sender;
Console.WriteLine(b.Text);
}
因为使用此事件处理程序的所有按钮都具有相同的文本。我有一个与按钮相关联的唯一ID,但不知道如何发送它们
感谢
答案 0 :(得分:3)
您可以使用Name
或Tag
属性。
答案 1 :(得分:3)
在创建按钮时将ID放在按钮的Tag属性中,然后检查事件处理程序中的ID。
Button button = new Button();
button.Tag = 1;
...
void pdfButton_Click(object sender, EventArgs e)
{
Button b = (Button)sender;
switch ((int)b.Tag)
{
...
}
}
答案 2 :(得分:1)
第一:通过开关在一个事件中处理多次点击的不良做法。但无论如何解决方案是:
创建您自己的控件,该控件继承按钮并将您的ID作为属性进行广告。所以你可以通过以下方式访问它:
MyButton b = (MyButton)sender;
switch(b.ID) {
//Code goes here
}
答案 3 :(得分:0)
如果您添加的每个按钮都有唯一的ID,为什么不使用按钮的ID属性?
Button button = new Button();
button.ID= "Button1";
//...
void pdfButton_Click(object sender, EventArgs e)
{
Button b = (Button)sender;
switch(button.ID)
{
case "Button1":
//...
}
}