还是先看代码:
代码一:
Do While Inet1.StillExecuting
     Select Case State
       Case 3
           xxx
       case x
           xxx
     End Select    
 DoEvents
Loop代码二:
Do While Inet1.StillExecuting
 DoEvents
Loop
----------------------------------------------
Private Sub Inet1_StateChanged(ByVal State As Integer)
   Select Case State
      Case 2
         xxx
      Case x
         xxx
   End Select
End Sub
判断Inet1的状态,能否用上面2段代码来实现?运行程序,系统就像没有看见Case语句一样,请问到底错在那里?

解决方案 »

  1.   

    代码二:
    Do While Inet1.StillExecuting
    Inet1_StateChanged(inet1.state)
    '好像没调用case语句
     DoEvents
    Loop
    ----------------------------------------------
    Private Sub Inet1_StateChanged(ByVal State As Integer)
       Select Case State
          Case 2
             xxx
          Case x
             xxx
       End Select
    End Sub
      

  2.   

    Inet1_StateChanged(inet1.state) 未找到方法或者函数成员
      

  3.   

    Inet1是一个控件的名字:MS Internet Transfer 6。0
      

  4.   

    StillExecuting是Boolean类型的.你看一下State是不是返回了11,就是错误的.
    而State的描述如下
    State 的设置值:
    常数 值 描述 
    icNone 0 无状态可报告。 
    icHostResolvingHost 1 该控件正在查询所指定的主机的 IP 地址。 
    icHostResolved 2 该控件已成功地找到所指定的主机的 IP 地址。 
    icConnecting 3 该控件正在与主机连接。 
    icConnected 4 该控件已与主机连接成功。 
    icRequesting 5 该控件正在向主机发送请求。 
    icRequestSent 6 该控件发送请求已成功。 
    icReceivingResponse 7 该控件正在接收主机的响应。 
    icResponseReceived 8 该控件已成功地接收到主机的响应。 
    icDisconnecting 9 该控件正在解除与主机的连接。 
    icDisconnected 10 该控件已成功地与主机解除了连接。 
    icError 11 与主机通讯时出现了错误。 
    icResponseCompleted 12 该请求已经完成,并且所有数据均已接收到。 
      

  5.   

    问题已经解决,得出结论如下:代码一和代码二均能实现对Inet1状态的检测.散分