2011-01-11 81 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": 
      //... 
    } 

}