2016-01-11 52 views
0

有點新來Visual模式,需要得到這個簡單的東西爲我的課程作品項目工作。VB.Net立即關閉兩個表格

希望的結果是當用戶試圖退出Form2時,另一個表單(FormCheck)將打開詢問用戶他們是否確定要離開,如果他們選擇是,則Form2和FormCheck將關閉,Form1將打開。但是,當我嘗試這樣做時,FormCheck將關閉,Form1將打開,但Form2將保持打開Form1後面。

這裏是我的代碼:

Private Sub btnYes_Click(sender As Object, e As EventArgs) Handles btnYes.Click 
     Dim NewForm As Form1 
     NewForm = New Form1 
     NewForm.Show() 
     NewForm = Nothing 
     Me.Close() 
     Form2.Close() 

正如我所說的還是新的,所以如果答案是儘可能基本會有所幫助。 預先感謝您!

+0

您打開窗體的方式與您在示例中打開Form1的方式相同嗎?如果是這樣,你實例化一個新的Form2並試圖關閉默認實例。您需要傳遞當前Form2實例的引用並關閉該實例,或者從Forms集合中查找並刪除它。 –

+0

只是不要用無用的對話框來糾纏用戶。是的,他很確定。 –

回答

0

你必須找到現有的Form2

'YOUR EXISTING CODE HERE 
For Each frm as Form in Application.OpenForms 
    If frm.Name="Form2" 
     frm.Close() 
    End If 
Next 
'CLOSE THIS FORM HERE 

您應該在關閉當前表單之前運行此代碼。

0

您可以通過在Form2中添加一個屬性來告訴用戶是否單擊是或否。根據他的回答,你可以關閉Form1或不。無論如何,一旦用戶點擊是或否,Form2將被關閉。

Public Partial Class Form1 
    Inherits Form 
    Public Sub New() 
     InitializeComponent() 
    End Sub 

    Private Sub button1_Click(sender As Object, e As EventArgs) 
     Dim form2 As New Form2() 
     form2.ShowDialog() 

     If form2.IsExitRequired Then 
      Me.Close() 
     End If 
    End Sub 
End Class 

Public Partial Class Form2 
    Inherits Form 
    Public Sub New() 
     InitializeComponent() 
    End Sub 

    Public Property IsExitRequired() As Boolean 
     Get 
      Return m_IsExitRequired 
     End Get 
     Private Set 
      m_IsExitRequired = Value 
     End Set 
    End Property 
    Private m_IsExitRequired As Boolean 

    Private Sub yesButton_Click(sender As Object, e As EventArgs) 
     IsExitRequired = True 
     Close() 
    End Sub 

    Private Sub noButton_Click(sender As Object, e As EventArgs) 
     IsExitRequired = False 
     Close() 
    End Sub 
End Class 
0

您必須關閉當前表格前,先關閉其他形式。

Form2.Close() 
Me.Close()