【问题标题】:VB.NET Disable/Hide x button but WITHOUT disabling closing altogetherVB.NET 禁用/隐藏 x 按钮但不完全禁用关闭
【发布时间】:2015-12-11 17:26:16
【问题描述】:

我想从我的表单中删除/禁用/隐藏 x 按钮,但不完全禁用关闭。所以我想要它,这样程序就不能通过使用 x 按钮关闭,而只能通过某个键命令(通过菜单项或类似项)关闭。我知道的唯一方法是完全禁用关闭,这意味着 x 按钮不起作用,但我无法使用键盘命令关闭它。

有什么方法可以禁用 X 按钮吗?

谢谢。

【问题讨论】:

  • 这是一个 WinForm 应用程序吗?
  • @StevenDoggart 是的,这是一个 Windows 窗体应用程序。
  • 很难理解为什么“键盘命令”不起作用,只需使用 ProcessCmdKey() 覆盖检测它并调用 Me.Close()。

标签: vb.net


【解决方案1】:

在表单的属性中,将ControlBox 属性设置为False。然后,在代码中,当你想关闭窗体时,只需调用窗体的Close 方法即可。

但是,这样做不会阻止用户通过标准操作系统方法(例如通过任务栏上的按钮,通过 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 我已经更新了我的答案以演示一种方法
猜你喜欢
  • 2011-09-04
  • 2014-02-24
  • 1970-01-01
  • 1970-01-01
  • 2015-04-04
  • 1970-01-01
  • 2018-01-18
  • 1970-01-01
  • 2015-02-14
相关资源
最近更新 更多