[求助高手]ActiveX建立控件数组的问题?
ActiveX能否建立控件数组?
我用MsComm控件作了测试,代码如下:
Dim comTest(4) As AxMsCommLib.AxMsComm
For i = 1 to 4
comTest(i) = New AxMsCommLib.AxMsComm
comTest(i).CommPort = i + 1 <-------代码执行到这句就会显示错误
comTest(i).RTSEnable = True
comTest(i).RThreshold = 1
comTest(i).InputMode = MSCommLib.InputModeConstants.comInputModeText
comTest(i).InputLen = 0
comTest(i).PortOpen = True
Next
错误信息:
未处理的“InvalidActiveXStateException”类型的异常出现在 axinterop.mscommlib.dll 中。
请问高手如何解决?
问题点数:200、回复次数:6Top
1 楼weiljj()回复于 2005-04-02 17:33:09 得分 100
能建立ActiveX控件數組,不過VB.NET數組的下界是從0開始的.我沒有AxMsComm,所以是用CommonDialog來試的,如下.
Dim i As Int32
Dim comTest(4) As MSComDlg.CommonDialog
For i = 0 To comTest.Length - 1
comTest(i) = New MSComDlg.CommonDialog
comTest(i).ShowColor()
Next
所以不是你的控件數組有問題,應該是你對控件的操作有問題.Top
2 楼hamadou(闵峰--为了理想而奋斗)回复于 2005-04-02 17:39:21 得分 50
up!Top
3 楼cyczl666(蔡蔡)回复于 2005-04-02 18:00:28 得分 0
我就是从0开始的Top
4 楼cyczl666(蔡蔡)回复于 2005-04-02 18:03:01 得分 0
在程序里的代码,我是这么写的:
For i = 0 To 3
comTest(i) = New AxMSCommLib.AxMSComm
comTest(i).Enabled = True
comTest(i).RTSEnable = True
comTest(i).RThreshold = 1
comTest(i).InputMode = MSCommLib.InputModeConstants.comInputModeText
comTest(i).InputLen = 0
comTest(i).CommPort = i + 1
comTest(i).PortOpen = True
AddHandler comTest(i).OnComm, AddressOf comTest_OnComm
NextTop
5 楼cyczl666(蔡蔡)回复于 2005-04-02 18:06:45 得分 0
OK了,我少加了一句
Me.Controls.Add(comTest(i))Top
6 楼zhanghui7880()回复于 2005-04-02 20:44:29 得分 50
受益匪浅呀,高手给点分吧Top




