注册 登录
编程论坛 VB6论坛

VB类型不匹配

leziyi 发布于 2018-10-27 10:14, 2116 次点击
If Text1.Text = "" Then

   MsgBox "请输入IP地址!"
   
   Exit Sub
   
ElseIf Text2.Text = "" Then

   MsgBox "请输入监听端口!"
   
   Exit Sub
   
End If

Dim f, Index

For f = 0 To Listen.UBound

     If f = Listen.UBound Then
   
       Load (Listen.UBound + 1)-----------------------------------------------------此行出错
      
    End If
      
    If Listen(f).State = 0 Then
   
       Index = f
      
    End If
         
Next

With Listen

     .RemoteHost = Text1.Text
     
     .RemotePort = Text2.Text
     
End With

Listen.Connect

Picture1.Print "正在连接......"

End Sub
5 回复
#2
沉默的痞子2018-10-27 14:30
回复 楼主 leziyi
应该是  Load Listen((Listen.UBound + 1))
(Listen.UBound + 1)返回的是long,不是对象
#3
leziyi2018-10-27 19:50
For f = 0 To Listen.UBound

     If f = Listen.UBound Then--------------------------------------------此行出错
   
        Load Listen((Listen.UBound + 1))
      
    End If
      
    If Listen(f).State = 0 Then
   
       Index = f
      
    End If
         
Next
#4
沉默的痞子2018-10-28 08:52
回复 3楼 leziyi
按理此行不应出错啊,出的什么错?有没有设置数组控件?
#5
suzhanpeng2018-12-16 15:01
For f = 0 To Listen.UBound

     If f = Listen.UBound Then
我是小白,这样的写法没见过,是不是应该写成
For f = 0 To UBound(Listen)

     If f = UBound(Listen) Then
不知道对不对!
#6
ZHRXJR2018-12-16 21:32
记得对于数组控件(对象)的最大下标应该使用 :控件对象.UBound ,对于数组变量的最大下标应该使用 :UBound(变量名)
因此是不是 For f = 0 To Listen.UBound 是正确的。

Load Listen((Listen.UBound + 1)) 应该是 Load Listen(Listen.UBound + 1) 不需要二个括号

程序代码:
Dim xx As Integer
For f = 0 To Listen.UBound
     If f = Listen.UBound Then
        xx = Listen.UBound + 1    '必须使用变量,不然 Listen.UBound 会发生变化
        Load Listen(xx)   '添加数组控件
        Listen(xx).Visible = True   '使新添加控件可见
        Listen(xx).Top = 1200: Listen(xx).Left = 3480   '设置新控件的位置
    End If
Next f

经调试没有错误。

1