是否可以創建一個控件數組?如果數組中的多個控件共享相同的事件處理程序,是否有辦法獲取控件的索引?C#創建一個控件數組
5
A
回答
7
這當然是可以做到的。在這種情況下共享事件處理程序相當容易,因爲引發該事件的Button
將作爲事件參數的一部分發送。這將是sender
值,可以轉換回Button
下面是一些示例代碼
class Form1 : Form {
private Button[] _buttons;
public Form1(int count) {
_buttons = new Button[count];
for (int i = 0; i < count; i++) {
var b = new Button();
b.Text = "Button" + i.ToString()
b.Click += new EventHandler(OnButtonClick);
_buttons[i] = b;
}
}
private void OnButtonClick(object sender, EventArgs e) {
var whichButton = (Button)sender;
...
}
}
+0
該解決方案適用於我。這正是我所期待的。 – Kevin 2010-01-30 18:10:53
4
基於Kevins評論:
foreach(Button b in MyForm.Controls.OfType<Button>())
{
b.Click += Button_Click;
}
void Button_Click(object sender, EventArgs e)
{
Button clickedButton = sender as Button;
}
相關問題
- 1. 創建一組控件
- 2. 創建一個結構數組,創建一個數組,大小C
- 3. 爲SplashScreen創建一個C#組件
- 4. 創建一個標籤數組C#
- 5. 從2D創建一個C數組NSArray
- 6. 從C數組創建一個NSArray
- 7. C#:創建一個類的數組
- 8. 如何創建一個c數組?
- 9. 從C中的不同文本文件創建一個數組數組C
- 10. 試圖創建一個數組條件
- 11. 重新創建一組控件
- 12. 創建一個數組
- 13. 創建一個UIViews數組
- 14. 創建一個數組blockingqueue
- 15. 創建一個CLLocationCoordinates數組
- 16. C++創建數組?
- 17. C++創建的對象與一個數組作爲構件
- 18. 如何在C中創建一個struct數組的數組?
- 19. 在C中創建一個int數組的數組?
- 20. 如何在C++中創建一個隨機數組的數組
- 21. 在C#中創建一個二維數組數組
- 22. 創建一個數組對象數組?
- 23. Qt設計器:創建控件數組
- 24. 如何從C語言的一行控制檯輸入創建一個數組?
- 25. WPF創建多組控件
- 26. 創建Windows Forms控件(C++)
- 27. 創建ReportViewer控件C#
- 28. C++一個對象(創建)在另一個類中的數組
- 29. 創建一個由組件監聽的控制器事件
- 30. 如何在C#2010.NET中創建控件數組?
請,定義組件。也許代碼示例會有所幫助。 – 2010-01-30 15:35:21
例如:我想在共享相同的點擊事件的表單上有30個按鈕 – Kevin 2010-01-30 15:42:45
點擊事件的發件人參數將是生成點擊的按鈕,因此獲取索引將是'Array.IndexOf(buttonArray,sender )' – shf301 2010-01-30 15:48:02