我想從我的窗體中刪除/禁用/隱藏x按鈕,但沒有禁用完全關閉。所以我需要它,所以程序不能通過使用x按鈕來關閉,而只能通過某個鍵盤命令(通過菜單項或類似命令)來關閉。我知道的唯一方法是完全禁用關閉,這意味着x按鈕不起作用,但我無法使用鍵盤命令關閉它。VB.NET禁用/隱藏x按鈕,但沒有禁用完全關閉
是否有任何方法禁用只是x按鈕?
謝謝。
我想從我的窗體中刪除/禁用/隱藏x按鈕,但沒有禁用完全關閉。所以我需要它,所以程序不能通過使用x按鈕來關閉,而只能通過某個鍵盤命令(通過菜單項或類似命令)來關閉。我知道的唯一方法是完全禁用關閉,這意味着x按鈕不起作用,但我無法使用鍵盤命令關閉它。VB.NET禁用/隱藏x按鈕,但沒有禁用完全關閉
是否有任何方法禁用只是x按鈕?
謝謝。
在窗體的屬性中,將ControlBox
屬性設置爲False
。然後,在代碼中,當您要關閉表單時,只需調用表單的Close
方法即可。
然而,這樣做,也不會從通過標準OS方法關閉窗口停止用戶(例如,經由任務欄上的按鈕,通過ALT + F4)。爲了阻止這種情況,您需要取消在其FormClosing
事件中關閉窗體。例如:
Public Class Form1
Private _closeAllowed As Boolean = False
Private Sub Form1_Click(sender As Object, e As EventArgs) Handles Me.Click
_closeAllowed = True
Close()
End Sub
Private Sub Form1_FormClosing(sender As Object, e As FormClosingEventArgs) Handles Me.FormClosing
If Not _closeAllowed Then
e.Cancel = True
End If
End Sub
End Class
但是,即使這樣也不會終止應用程序。要獲得更全面的解決方案,您可能需要針對開發Windows自助服務終端應用程序的最佳實踐進行一些搜索。
謝謝。我會嘗試,並讓你知道它是否適用於我。 –
有沒有辦法阻止除了使用鍵盤命令之外的所有應用程序關閉?例如。禁用右鍵單擊並使用關閉窗口,禁用Alt + F4等),但仍然讓關鍵命令關閉它? –
@JackPollock我已經更新了我的答案,以演示如何做到這一點 –
這是一個WinForm應用程序嗎? –
@StevenDoggart是的這是一個Windows窗體應用程序。 –
很難理解爲什麼「鍵盤命令」不起作用,只需使用ProcessCmdKey()覆蓋檢測它並調用Me.Close()即可。 –