2010-04-12 25 views
2

我有一個簡單的Windows窗體,在運行時託管屬性控件。當用戶點擊Close [X]時,我想讓窗口及其內容保持活動狀態,而不是通過處理FormClosing事件來取消它,取消事件並隱藏表單。在FormClosing事件被覆蓋隱藏而不是關閉後更好的方式來終止表單?

這很好,但在應用程序結束時我需要關閉窗口。我實施了下面,但它感覺kludgey。 有沒有更簡單,更聰明的方式來處理這種情況?(表單的控制器調用KillForm它接收來自主窗口關閉事件後明確。)

Friend Class HostForm 
    Private _hideInsteadOfClosing As Boolean = True 

    Private Sub HostForm_FormClosing(ByVal sender As Object, ByVal e As FormClosingEventArgs) _ 
    Handles Me.FormClosing 
     If _hideInsteadOfClosing Then 
      Me.Hide() 
      e.Cancel = True 
     End If 
    End Sub 

    Public Sub KillForm() 
     _hideInsteadOfClosing = False 
     Me.Close() 
    End Sub 
End Class 
+0

好問題,我也遇到過一個問題。如果你有類似Messenger的東西,當你按下X時,它會最小化而不是退出,例如,當你試圖關閉你的計算機時,Windows有效地按下你的應用程序本身的X來優雅地關閉它,這會使它最小化比退出。我一直無法找出區分用戶點擊X和Windows的方法,並且很想知道。 – NibblyPig 2010-04-12 13:32:54

回答

相關問題