| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 690 人关注过本帖
标题:[求助]试将控件数组作参数传递给子过程,出错,原因何在?,
取消只看楼主 加入收藏
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
快速回复:[求助]试将控件数组作参数传递给子过程,出错,原因何在?,
数据加载中...
 
   



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

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