是否可以创建一个控件数组?如果数组中的多个控件共享相同的事件处理程序,是否有办法获取控件的索引?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. 从2D创建一个C数组NSArray
- 2. 从C中的不同文本文件创建一个数组数组C
- 3. 创建一个数组
- 4. 重新创建一组控件
- 5. C++创建的对象与一个数组作为构件
- 6. 在C中创建一个int数组的数组?
- 7. 如何在C中创建一个struct数组的数组?
- 8. 创建一个数组对象数组?
- 9. Qt设计器:创建控件数组
- 10. 如何从C语言的一行控制台输入创建一个数组?
- 11. 创建一个由组件监听的控制器事件
- 12. 如何在C#2010.NET中创建控件数组?
- 13. 在C#中创建WPF控件的列表/数组?
- 14. 创建一个数组,并设置我试图创建一个数组值
- 15. C#如何创建一个大的字节数组到一个文件
- 16. C++创建小部件数组
- 17. 创建一个AJAX脚本控件
- 18. 想法创建一个日历控件
- 19. 创建一个WPF自定义控件
- 20. 一格创建一个二维数组
- 21. 创建一个单一值的数组
- 22. 如何在创建子控件之外引用控件数组?
- 23. 从一个文件创建一个名称数组
- 24. 从一个txt文件创建一个数组
- 25. 在一个ini文件中创建一个数组
- 26. 从一个整数创建numpy数组
- 27. 动态创建一个整数数组
- 28. 如何创建一个数组到另一个数组?
- 29. 递归从另一个数组创建一个数组
- 30. Java:从另一个数组的属性创建一个数组
请,定义组件。也许代码示例会有所帮助。 – 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