什么是控件数组控件数组的概述(2)
学习啦在线学习网什么是控件数组控件数组的概述
删除对象
运行时可以使用Unload函数删除控件数组中运行时创建的控件,但设计时创建的控件不能删除。如:
学习啦在线学习网 UnloadCommand(1)
Unload函数语法与Load函数语法相似。
属性概述
学习啦在线学习网 每个控件数组本身都有4个属性,这4个属性都是设计时无效、运行时只读的;而一个单独的控件还有和控件数组相关的Index属性。
Count属性
学习啦在线学习网 Object.Count As Long
学习啦在线学习网 返回控件数组中的元素个数。
Item属性
学习啦在线学习网 Object.Item (IndexAs Integer) As Object
返回控件数组中指定下标的控件,相当于Object(IndexAs Integer) As Object。
LBound和UBound属性
学习啦在线学习网 Object.LBound As Integer
Object.UBound As Integer
返回控件数组中下标的最小值(LBound)或最大值(UBound)。
Index属性
学习啦在线学习网 Object.Index As Integer
学习啦在线学习网 (0≤Object.Index≤32767)
这个属性应用于控件数组中的一个控件,作用是返回或设计时设置控件在其控件数组中的下标,仅当Object属于某一控件数组时有效。
示例
学习啦在线学习网 已有一个名为“Commands”的Command控件数组,其中有一大小为900缇×450缇的Commands(0)控件。运行时单击Commands(0),则向控件数组中添加一个新控件并显示在前一个控件下方75缇处,Caption属性为其Index属性值;单击其他控件时,则从控件数组中删除该控件。
PrivateSubCommands_Click(IndexAsInteger)WithCommandsIfIndex=0ThenIf.UBound=32767ThenExitSubLoad.Item(.UBound+1).Item(.UBound).Caption=.UBound.Item(.UBound).Top=(75+450)*.UBound+75.Item(.UBound).Visible=TrueElseUnload.Item(Index)EndIfEndWithEndSub
这里用到了With语句,在With ... End With语句块中可以省略“Commands”标识符而直接引用其属性。
控件数组的优点
一方面,使用控件数组所占用的资源比单独添加每个控件所占用的资源更少,另一方面,因为控件数组的事件可以共享,如果要使多个同类型控件在一个事件中执行相同或类似的代码,使用控件数组比单独创建多个控件更方便,代码也更容易维护。
学习啦在线学习网 例如,在一个窗体中有若干个Command控件,显示的内容是从1开始编号,要让用户单击某按钮时,弹出一个窗口显示其编号的平方,若不使用控件数组,则要为Command1、Command2、……、Command10控件一一添加Click事件的代码;如果日后要调整显示内容,则要一一修改每个控件的代码,非常繁琐。而控件数组就能用类似下面的代码很好地解决这个问题:
学习啦在线学习网 PrivateSubCommands1_Click(IndexAsInteger)
MsgBoxIndex^2
EndSub
看过“控件数组的概述”的人还看了:
3.