【求助】ActiveX控件的问题

码农中的战斗机 2006-07-05 01:47:51
我做了一个ActiveX控件,控件中有一个控件数组,通过Tabs属性动态的加载来改变控件数组中的控件的个数。
但是问题是我将这个控件添加到窗口之后,设计状态下改变Tabs(比如说3)有效,F5一调试控件数组的控件有变成了一个,停止调试后Tabs还是3,而修改与原来控件数组中第二个Ta控件有关的属性的时候也出错(其实就是Tabs变成了1,只是显示的还是3)。

高手帮我看看是怎么回事?难道ActiveX控件中不能动态的加载控件数组?
...全文
137 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
我是通过Tabs属性动态的加载控件数组

Public Property Get Tabs() As variant
Tabs= m_Tabs
End Property

Public Property Let Tabs(New_Tabs As variant)
m_Tabs= New_Tabs
for i=1 to m_tabs
on error resume next
load command(i)
command(i).visible=true
……
next '这里只是写出Tabs变大加载的代码,还有变小时卸载的就不罗嗦了
End Property

同时还有一个usercontrol.ActiveTab属性存放当前用户的控件,还有一个usercontrol.caption对应command(ActiveTab).caption

在设计状态下Tabs初始为1,修改了Tabs的赋值为3,确实同时加载了3 个控件,ActiveTab、caption的设置也没有出现问题
但是F5调试运行之后,只有一个控件
停止之后Tabs=3,但是想要修改ActiveTab 和command(ActiveTab).caption (只要是ActiveTab>1),就会报错,好像是数组错误吧。其实,应该就是这个控件数组只有一个控件。
celevantis 2006-07-05
  • 打赏
  • 举报
回复
根本没看懂你要说什么

Private m_Data() As String
Public Property Get a() As String()
a = m_Data
End Property

Public Property Let a(value() As String)
m_Data = value
End Property

这是控件属性数组的写法,希望对你有用


Public Property Get b(ByVal Index As Long) As String
b = m_Data(Index)
End Property
Public Property Let b(ByVal Index As Long, value As String)
m_Data(Index) = value
End Property

1,451

社区成员

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

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