2011-01-11 66 views
0

我在飞行按钮的ID为事件处理

创建7个按键,当我创建我想有一个事件处理程序比可以处理通过一个开关在一个方法的所有点击的按钮。理想的情况是我想传递一个ID与指示被点击一下按钮,反对的

void pdfButton_Click(object sender, EventArgs e) 
{ 
    Button b = (Button)sender; 
    Console.WriteLine(b.Text); 
} 

该解决方案为所有使用此事件处理程序的按钮具有相同的文字。我有witht按钮关联的唯一ID,但不知道如何把他们送到

感谢

回答

3

可以使用NameTag性能。

+0

可爱。非常感谢 – tom 2011-01-11 14:10:26

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) 
    { 
     ... 
    } 

} 
1

第一:在一个事件中通过开关处理多次点击的不良做法。但是,解决方案是:

创建您自己的控件,它继承按钮并将您的ID作为属性进行广告。

MyButton b = (MyButton)sender; 

switch(b.ID) { 
    //Code goes here 
} 
+0

事情是每个按钮都做同样的事情,它会根据传递的值加载一个字节数组。如果你需要定制的处理事件,它当然是唯一不好的做法? – tom 2011-01-11 14:17:15

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": 
      //... 
    } 

}