首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > VB Dotnet >

控件数组,该怎么处理

2013-06-26 
控件数组VB6用习惯了,NET不知道怎么实现这个功能了。我用net发现个问题,就是添加控件组如果太多了怎么办,一

控件数组
VB6用习惯了,NET不知道怎么实现这个功能了。
我用net发现个问题,就是添加控件组如果太多了怎么办,一个一个岂不是很麻烦。
Dim TextboxArray As New ArrayList
TextboxArray.Add(TextBox1)
TextboxArray.Add(TextBox2)
TextboxArray.Add(TextBox3)
...
还有就是如果我有20个butten,我需要他们响应同1个事件,只是编号不同。如VB6里index。
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click,2,3,4,5...我不可能在后面都加上吧。就算加上了用起来也不方便。

求高手指点迷津。
先写过了
[解决办法]

for(int i=1;i<=20;i++)
{
  var txt=this.FindControl("TextBox"+i);
  if(txt !=null)
  {
    txt.Clikc+=Button1_Click;
   TextboxArray.Add(txt);
  }
}

[解决办法]
  txt.Click += Button1_Click;
[解决办法]
1)一点都不麻烦,比比自动生成的 InitializeComponent() 里面的代码,这个简单多了。
要偷懒就在 Excel 用公式,批量生成一下同样规格的代码段。
2)也可以通过 AddHandler 语句关联。
照样可以用 Excel 批量生成代码段。
[解决办法]
添加那么多会很慢的。考虑其他方式实现,必须多个重复控件,就自己写代码添加。.net中没有控件数组的概念,需要自行实现。
[解决办法]
引用:
添加那么多会很慢的。考虑其他方式实现,必须多个重复控件,就自己写代码添加。.net中没有控件数组的概念,需要自行实现。

预先设计不过就是自动生成 InitializeComponent(),这与自己写代码添加有什么区别?
相同的控件数目下,两种方式无所谓快慢。
[解决办法]
把这些text控件放到一个容器中,然后遍历容器中的控件,把它们都加到控件数组中

第二个问题:Handles 是可以用代码增加的

热点排行