关于.net控件数组的探讨
2018-08-13胡建飞
胡建飞
关于.net控件数组的探讨
胡建飞1,2
(1. 中海油能源发展股份有限公司管道工程分公司,天津 300452;2. 海油发展珠海管道工程有限公司,广东 珠海 519000)
本文介绍了在VB.NET和ASP.NET中实现控件数组的方法,并介绍了一些控件数组的技巧。本文进一步探讨了.NET中不使用控件数组实现控件数组功能的方法,从中我们可以知道,.NET不使用控件数组的原因,进一步了解在.NET中实现控件数组类似功能的方法,加深我们对.NET控件集合概念的理解。
.NET;控件数组
0 引言
从VB6时代走过来的程序员都习惯使用一种叫控件数组的编程方式,使用控件数组有以下作用:
1、可以循环遍历数组中所有控件。
2、还可以动态向程序添加新的控件。
3、最主要的是可以让多个控件响应同一段代码。
但是到了.NET中我们发现习惯使用的控件数组被取消了,这让从VB6过渡到.NET的程序员非常不适应,实际上.NET引入了控件集合模式,比控件数组更加灵活,使控件数组变得没有必要。
而且.NET并非完全取消了控件数组,通过一些技巧我们照样可以建立控件数组,继续使用习惯的编程方式,下面我们通过VB.NET和ASP.NET分别介绍在windows应用程序编程和网页编程中控件数组的实现。
1 VB.NET应用程序中建立控件数组的方法[1,2,3]
我们先讨论在windows应用程序中使用控件数组的方法,以VB.net为例,我们要在窗口中动态建立100个TextBox控件,代码(VB语言)如下:
Dim txt(323) As TextBox
For i = 0 To 99
txt(i) = New TextBox
txt(i).Size = New Size(60, 21)
txt(i).Tag = i.ToString
Me.Controls.Add(txt(i))
AddHandler txt(i).GotFocus, AddressOf txt_gotfocus
AddHandler txt(i).LostFocus, AddressOf txt_lostfocus
AddHandler txt(i).TextChanged, AddressOf txt_changed
AddHandler txt(i).KeyPress,
AddressOf txt_keypress
Next
在上面的代码中,我们建立了下标从0到99的共100个TextBox,并把这100个TextBox使用Me.Controls.Add(txt(i))语句加入到窗口中,分别为每个TextBox 的GotFocus、LostFocus、TextChanged、KeyPress指定了执行的代码。……
