我想从我的窗体中删除/禁用/隐藏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()即可。 –