我需要在Windows窗體上動態創建5個按鈕,每個按鈕都應該響應點擊事件。我嘗試過,但所有按鈕都響應相同的事件。如何創建5個按鈕並動態分配各個點擊事件?
回答
這就是尼克講的是兩個選擇(你應該能夠運行這個代碼,看看這兩個選項):
public Form1()
{
InitializeComponent();
for (int i = 0; i < 5; i++)
{
Button button = new Button();
button.Location = new Point(20, 30 * i + 10);
switch (i)
{
case 0:
button.Click += new EventHandler(ButtonClick);
break;
case 1:
button.Click += new EventHandler(ButtonClick2);
break;
//...
}
this.Controls.Add(button);
}
for (int i = 0; i < 5; i++)
{
Button button = new Button();
button.Location = new Point(160, 30 * i + 10);
button.Click += new EventHandler(ButtonClickOneEvent);
button.Tag = i;
this.Controls.Add(button);
}
}
void ButtonClick(object sender, EventArgs e)
{
// First Button Clicked
}
void ButtonClick2(object sender, EventArgs e)
{
// Second Button Clicked
}
void ButtonClickOneEvent(object sender, EventArgs e)
{
Button button = sender as Button;
if (button != null)
{
// now you know the button that was clicked
switch ((int)button.Tag)
{
case 0:
// First Button Clicked
break;
case 1:
// Second Button Clicked
break;
// ...
}
}
}
對,我只是比你更懶! – Nick 2009-09-16 17:50:33
這些按鈕會響應點擊事件,就像當我點擊button1時,消息應該顯示「Button 1 Clicked」,點擊按鈕2時它應該顯示「Button 2 Clicked」。等等... – 2009-09-17 13:29:56
他們肯定會,繼續並通過放置斷點或添加MessageBox.Show(「在此處添加我的評論」)來測試它;看到它的工作。 – SwDevMan81 2009-09-17 15:08:43
猜你可能曾嘗試:是的,所有的按鈕觸發他們的活動,以同樣的方法,但sender
-parameter回調方法包含對實際導致了特定事件的按鈕的引用。
我假設你在一個循環中,並做這樣的事情?
Button newButton = new Button();
newButton.Click += new EventHandler(newButton_Clicked);
您正在爲所有按鈕註冊相同的方法。每個按鈕都需要單獨的方法。或者,您可以爲每個按鈕分配一個不同的標識屬性,並在您的處理程序中檢查以查看哪個按鈕是發件人。
從那裏你可以採取適當的行動。
button b =new button();
b.text = " enter text";
b.click =+(then press Tab using key board)
它是如何解決問題的? – Moumit 2016-03-27 05:51:46
- 1. 爲vb.net中的動態按鈕創建多個點擊事件
- 2. 分配點擊事件來動態添加按鈕
- 3. 如何動態地創建多個按鈕並分別處理每個按鈕
- 4. 如何動態設置按鈕ID並綁定點擊事件?
- 5. 動態創建的按鈕點擊事件未觸發
- 6. Android:動態創建圖像按鈕與點擊事件
- 7. 如何在TableRow中動態創建按鈕單擊事件?
- 8. 點擊功能動態創建按鈕
- 9. 點擊按鈕動態創建TableViews
- 10. 點擊動態創建按鈕
- 11. 如何檢測動態分配的單選按鈕中的點擊事件?
- 12. 如何在按鈕單擊事件(C sharp ASP.NET)上創建動態按鈕?
- 13. 如何動態創建一個asp按鈕並向它添加事件
- 14. 按鈕點擊創建mysql事件,每5分鐘刪除第一行表?
- 15. 找到哪個動態創建的按鈕已被點擊
- 16. 單擊事件按鈕5次點擊後禁用按鈕
- 17. 按鈕單擊創建動態控件
- 18. 添加事件動態創建按鈕
- 19. 禁用一個asp.net動態按鈕點擊事件,並啓用它之後
- 20. 如何找到動態創建的按鈕點擊表
- 21. 如何通過點擊按鈕動態創建對象
- 22. 如何在點擊時動態創建按鈕的名稱?
- 23. 我如何創建按鈕點擊動態表在ASP.Net
- 24. 如何爲窗體方法創建按鈕點擊事件?
- 25. 在MVC中動態創建按鈕5
- 26. Angular2 - 如何呈現動態點擊事件的按鈕
- 27. 點擊一個按鈕時的事件
- 28. VB.NET右鍵單擊事件動態創建按鈕
- 29. 動態創建的按鈕不觸發單擊事件
- 30. 如何在另一個點擊時創建一個新按鈕
讓我們瞭解您到目前爲止試過。 – dtb 2009-09-16 17:12:40
按鈕不響應事件。 – 2009-09-16 17:15:16