控件数组是VB提供的一个优秀的设计解决方案,它能很方便快捷的处理大批同类控件的响应和时间处理,但不知为什么在C#中这个优秀特性没有传承下来,甚为可惜,本文将要探讨就是如何在C# WinForm程序实现它.
首先请看界面
在上面的界面中,本人想实现一个42个元素的Button数组来实现一个日历的功能,上面显示出了一部分.
其中采用了网格布局来放置这些按钮.
手工创建为全部按钮后,在窗体类中代码中定义成员变量控件数组:
private Button[] btns;
然后在构造函数中初始化:
btns = new Button[42];
btns[0] = this.button1;
btns[1] = this.button2;
......
btns[40] = this.button41;
btns[41] = this.button42;
大家不禁要问了,如果采用动态创建岂不更好.其实不然,我采用手工创建的主要原因是手工放置调整按钮的位置和大小较为方便,如果动态创建出来的话,把他们放到界面上比较麻烦,尤其是在比较复杂的布局中.
然后是为上述数组中的各个控件添加事件:
for (int i = 0; i < btns.Length;i++ )
{
btns[i].Click += new System.EventHandler(th