主题:[求助] VB关于控件数组的创建
valentino2yuan
[专家分:0] 发布于 2008-08-06 19:31:00
Private Sub Command1_Click()
Static MaxIdx
If MaxIdx = 0 Then MaxIdx = 1
MaxIdx = MaxIdx + 1
上面最后两行没有读明白 为什么在If 和 Then后面的MaxIdx 的值一个为0,一个为1
意思是数组的下标号还是数组元素的个数 ? 请大虾们指点 谢 谢
If MaxIdx > 7 Then Exit Sub
Load Optbutton(MaxIdx)
Optbutton(MaxIdx).Top = Optbutton(MaxIdx - 1).Top + 480
Optbutton(MaxIdx).Visible = True
End Sub
回复列表 (共11个回复)
沙发
guoyong_cy [专家分:3050] 发布于 2008-08-06 20:26:00
[quote] Static MaxIdx
If MaxIdx = 0 Then MaxIdx = 1[/quote]
为什么要 static ...
为什么要 if Maxidx=0....
为什么要 optbutton(1)不存在?
板凳
tanchuhan [专家分:15140] 发布于 2008-08-06 21:42:00
Static的确需要,每按一次新创建的控件索引需要加1
“If MaxIdx = 0 Then MaxIdx = 1”就没必要了,如果要了的话,就变成从索引2开始Load了
另外,在“Optbutton(MaxIdx).Top = Optbutton(MaxIdx - 1).Top + 480”也会报错,因为1为空
当然,不排除楼主特意把默认存在的那个Optbutton的Index设为1
MaxIdx是控件数组的索引(或者楼主讲的下标)
3 楼
guoyong_cy [专家分:3050] 发布于 2008-08-06 21:47:00
用 Optbutton.UBound & Optbutton.Count 操作又方便有好理解
4 楼
valentino2yuan [专家分:0] 发布于 2008-08-06 22:32:00
“If MaxIdx = 0 Then MaxIdx = 1”就没必要了,如果要了的话,就变成从索引2开始Load了
这段程序是每单击1次命令按钮就创建一个单选按钮 ,我执行这段程序之后一共可以创建7个单选按钮---(optbutton) 为单选按钮这个控件数组的名称.
我认为"If MaxIdx > 7 Then Exit Sub" 当中的MaxIdx是个数
但是当第二次单击command的时候 我不知道 If MaxIdx = ??? Then MaxIdx=???
5 楼
valentino2yuan [专家分:0] 发布于 2008-08-06 22:35:00
程序我试过 没有问题的 而且能够创建7个单选按钮
6 楼
tanchuhan [专家分:15140] 发布于 2008-08-06 23:15:00
[quote]
程序我试过 没有问题的 而且能够创建7个单选按钮[/quote]
[url]http://file.pfan.cn/upfile/200808062314761.rar[/url]
7 楼
bcahzvip [专家分:6040] 发布于 2008-08-06 23:31:00
好例子。
8 楼
jianghongbo1 [专家分:410] 发布于 2008-08-07 09:02:00
此控件索引是从2到7,应是6个,0也不存在。
9 楼
老大徒伤悲 [专家分:29120] 发布于 2008-08-07 10:34:00
唉!此程序是经典的“动态添加控件数组元素”的例子。
其在设计阶段,已经有序号为0、1的两个控件了。其余的依次加入,每次一个。
然后回答楼主问题。
If MaxIdx = 0 Then MaxIdx = 1
maxidx变量的意义是,当前已经有的控件数组的最大下标。所以在初次使用时应为1,但因为新声明变量的初值为0,所以当是初值时改为1。这里从你对问题的叙述看,对if……then语句你不很理解,再啰嗦一下。if后面的“MaxIdx = 0”是条件,当满足条件时就执行then后面的“MaxIdx = 1”赋值语句。也就是说,这句用汉语来表达为:如果maxidx的值是0那么使maxidx的值为1。
MaxIdx = MaxIdx + 1
因为现在我们要增加一个控件元素,所以数组的下标就要增加1个了。这句没有什么解释的,主要是你不理解maxidx的用途。
If MaxIdx > 7 Then Exit Sub
这句用来控制控件的极限的,你可以修改成你喜欢的数字(大于1的整数)。
祝楼主进步。
10 楼
老大徒伤悲 [专家分:29120] 发布于 2008-08-07 10:37:00
这个例题似乎是谭浩强主编的丛书里面的 [例7.5] ,在231页?
我来回复