请问要使自写控件的属性为一数组应该怎么做?我这样写为什么出错?

_xiao 2003-08-02 05:26:49
我想让UserControl1的一个属性成为数组,就像MSChart的ChartData属性一样,相关代码如下:

Dim avarParam() As Variant

Property Let ArrayParam(aNewArray() As Variant)
ReDim avarNewArray(LBound(aNewArray), UBound(aNewArray))'在此处出错!
avarParam = aNewArray
End Property

Property Get ArrayParam() As Variant()
ArrayParam = avarParam
End Property

容器窗口中对其属性的使用为:
ReDim avarTest(10) As Variant
Dim i As Integer
For i = 0 To 10
avarTest(i) = i
Next i
UserControl11.ArrayParam = avarTest

结果运行时总在上面注释的那一行上出错,提示“下标越界(错误 9)”,调试发现 LBound(aNewArray) 这一句就已经出现下标越界的错误了,也就是说传入的aNewArray根本就不是数组,这是为什么?应该如何做才能达到我的目的?


另外一个问题是我这样做了后,ArrayParam参数属性只能在运行时出现,不能在设计时预先设置,那么请问各位大虾,我又该怎么做才能让它在设计时就出现呢?就像ListBox控件的List属性一样?
...全文
23 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
_xiao 2003-08-02
  • 打赏
  • 举报
回复
谢谢gpo2002(gpo2002)!
gpo2002 2003-08-02
  • 打赏
  • 举报
回复
Property Let ArrayParam(aNewArray() As Variant)
-----〉
Property Let ArrayParam(aNewArray As Variant)


enjoy !

1,451

社区成员

发帖
与我相关
我的任务
社区描述
VB 控件
社区管理员
  • 控件
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧