标题:[求助]试将控件数组作参数传递给子过程,出错,原因何在?,
取消只看楼主
wantvb
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2006-7-19
 问题点数:0 回复次数:1 
[求助]试将控件数组作参数传递给子过程,出错,原因何在?,

想用下面这个非常简单的程序试验一下'将控件数组作为参数传递给子过程'
我先用'复制->粘贴'的方法在窗体上建了一个image类型的控件数组box(0),box(1)。然后添加下面代码:
窗体:
Dim i As Integer

Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = vbKeyD Then
Call inline(i, box())
End If
End Sub

模块:
Public Sub inline(i As Integer, box() As Image)
For i = 0 To 1
box(i).Top = 600
Next i
End Sub

预期是:当按下键盘D键时将box(0)和box(1)的top值都变成600。

但是运行时出错了,说是"编译错误:类型不匹配:缺少数组或用户定义类型".
请问这是什么原因?如何更正?

[此贴子已经被作者于2006-7-19 3:02:17编辑过]

搜索更多相关主题的帖子: 控件 参数 
2006-07-19 02:54
wantvb
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2006-7-19
得分:0 
又试了一回,有点儿收获,但还是不很理想

刚才将代码修改成下面样子:
窗体:
Dim i As Integer

Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = vbKeyD Then
Call inline(i, box)
End If
End Sub
模块:
Public Sub inline(i As Integer, box)
For i = 0 To 1
box(i).Top = 600
Next i
End Sub

虽然可以正常运行了,但是又出现一个问题:参数box由于没有被指定类型而被默认成了Variant型。于是在编写子过程时系统就不会对box进行类型检查了,很不方便啊。所以还是希望有其它更好的解决方法。

[此贴子已经被作者于2006-7-19 4:51:46编辑过]

2006-07-19 04:48



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-79081-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 1.383042 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved