2017-07-08 27 views
-1

我試圖創建一個窗體使用Do Until。事情是當我運行這個代碼時,我得到一個異常:「System.InvalidCastException」。 所以這裏是代碼進出口試圖運行:我不能使用做,直到如果與Form.visible控制

Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load 
    Dim x As Boolean = False 
    Do Until x 
     If Form2.Visible = False & Form3.Visible = False & Form4.Visible = False Then 
      x = True 
     End If 
    Loop 
End 
End Sub 

而且由於什麼,我試圖做一個解釋:當窗口2,form3和form4是不可見的,程序將終止

回答

2

在VB中.NET邏輯運算符使用是或更好AndAlso

If Form2.Visible = False AndAlso 
    Form3.Visible = False AndAlso 
    Form4.Visible = False Then 
    x = True 
End if 

AndAlso是更好,因爲如果運營商的左側是假的,然後它打破imme在沒有評估其餘行的情況下進行測試

當然,請記住,如果這些表單中的任何一個可見,則此循環是無限循環。它將繼續無限運行,並且您無法對其他表單執行任何操作以允許其退出。這將有效地粉碎你的用戶界面。
至少您需要在這裏添加一個Application.DoEvents以允許在該循環內發生一些其他操作。

相關問題