通过cmdText.count 来判断。即控件数。

解决方案 »

  1.   

    把动态添加的控件数组的最大Index值事先保存为IndexMax
    然后设置错误处理
    On Error resume Next
    Dim I as Integer
    For I=1 to IndexMax   '不要Unload cmdTest(0)
        If cmdTest(i).Caption="Unload" then
           Unload cmdTest(i)
        Endif
    Next
      

  2.   

    比如有10个动态生成的COMMANDBUTTON控件,第3个和第8个已经被UNLOAD掉了,是否有相应的VB函数能判断cmdTest(3),cmdTest(8)已经被UNLOAD了???
      

  3.   

    'cmdText.count 是老变的!!!
    'For i= 1 to cmdTest.Count
    Dim TextX As VB.TextBox
    For Each TextX In Text1
        If TextX.Index > 0 Then '不能卸载设计时创建的控件
           Unload TextX
        End If
    Next
      

  4.   

    To:cloud_soft(cloud) 
    非要判断cmdTest(3),cmdTest(8)是否已经被UNLOAD的话,
    还是老办法,设置错误处理On Error Goto ...
    然后访问一下cmdTest(3)的属性看看是否出错就知道了
      

  5.   

    用WINSOCK控件,有5个客户端同SERVER建立了连接,如果第3个客户端结束连接,则UNLOAD SckServer(3),而SERVER接收客户端的数据时,使用FOR I=1 TO SckServer.Count-1 ......
    这样如果已经UNLOAD SscServer(3),那系统出错,如何处理?请高手指点。
      

  6.   

    '其实 Microsoft 早想到了,用集合不就解决了,不用错误处理!
    Dim CommandX As VB.CommandButton
    For Each CommandX In cmdTest
        If CommandX.Index > 0 Then '不能卸载设计时创建的控件
           Unload CommandX
        End If
    Next
      

  7.   

    用WINSOCK控件,有5个客户端同SERVER建立了连接,如果第3个客户端结束连接,则UNLOAD SckServer(3),而SERVER接收客户端的数据时,使用FOR I=1 TO SckServer.Count-1 ......
    这样如果已经UNLOAD SscServer(3),那系统出错,如何处理?请高手指点。 
      

  8.   

    同意 playyuer(女爱㊣) 的看法
      

  9.   

    看一看这段代码(我这段代码是关闭所有的非MDI窗口):
    Private Sub showNew()
        Dim i As Integer
        For i = 0 To Forms.Count - 1
            If Forms(i).Name <> "系统主菜单" Then
                Unload Forms(i)
                If Forms.Count = 1 Then
                    Exit For
                End If
            End If
            i = 0
        Next i
    End Sub
      

  10.   

    to cloud_soft(cloud) 你是不是眼神不好!
    我再说一遍:(其实这段程序在 Winsock 编程中是最常见、经典的)
    Dim WinsockX As MSWinsockLib.Winsock
    For Each WinsockX In SckServer
        If WinsockX.Index <> 0 AND  WinsockX.State = sckClosed Then '不能卸载设计时创建的控件
          Unload WinsockX 
        End If
    Next 
      

  11.   

    for each c in controls
        if c.name="cmdTest" then
            select case c.index
            case 0... 'design time indexs
            case else
                 unload c
            end select
        endif
    next
      

  12.   

    同意playyuer(女爱㊣)
    给他加分吧
      

  13.   

    管它出不出错呢。加个on error resume next 不就好了吗。
      

  14.   

    先定义一个结构,
    Private Type tActiveSocket
          Connected As Boolean
          ClientIPAddress As String
          ClientName As String
          Name As String
    End Type
    Private gActivesockets(100) As tActiveSocket
    For i = 1 To UBound(gActivesockets)
       If gActivesockets(i).Connected Then
          sckServer(i).SendData send
          DoEvents
       End If
    Next i
      

  15.   

    On Error Resume Next
    我就这样用