【问题标题】:Closing Form In VB6 With Keyword 'W' Or 'Ctrl+W' or 'Alt+w'在 VB6 中使用关键字“W”或“Ctrl+W”或“Alt+w”关闭表单
【发布时间】:2013-10-12 12:48:12
【问题描述】:

我是 VB6 的新手,并且正在做大学项目,任何人都可以告诉我如何在不使用任何命令按钮或控制工具的情况下关闭我的表单。

每当应用程序处于活动状态或表单处于活动状态,并且用户按下“W”键时,表单应该是“END”/“UNLOAD” 我该怎么做?

我尝试了这些代码:

Private Sub Form_KeyPress(KeyAscii As Integer)
If KeyAscii = 27 Then
Unload Me
End If
End Sub

但它没有工作。

【问题讨论】:

  • 如果您不记得“W”的 ASCII 码,请使用KeyAscii = Asc("W")。此外,我意识到 VB6 中的约定是将每个单词的每个首字母大写,但 StackOverflow 上没有这样的约定,而且全大写就像对人们尖叫……随时编辑您的帖子:)

标签: vb6


【解决方案1】:

您需要确保Form的KeyPreview属性设置为True,否则您的Form将不会处理KeyStrokes。我也会测试大小写。

Private Sub Form_KeyPress(KeyAscii As Integer)
    If KeyAscii = 87 Or KeyAscii = 119 Then  '87 is upper case 119 is lower case
        Unload Me
    End If

End Sub

如果您想检查诸如 Control 和 Alt 之类的修饰键,我会改用表单的 KeyDown EventHandler。

Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
    If (Shift And 1) Then ' Test for Shift Key
        If (KeyCode = 87 Or KeyCode = 119) Then
            Unload Me
        End If
    End If

    If (Shift And 2) Then 'Test for Control Key
        If (KeyCode = 87 Or KeyCode = 119) Then
            Unload Me
        End If
    End If

    If (Shift And 4) Then 'Test for Alt Key
        If (KeyCode = 87 Or KeyCode = 119) Then
            Unload Me
        End If
    End If

End Sub

【讨论】:

  • 非常感谢。它有效。
  • 你能告诉我如何使用相同的键“W”而不是“卸载我”来关闭 PC 我应该使用什么?
  • @DivyamSolanki 您可以使用 System.diagnostics.Process.Start("shutdown", "-s") 确保导入 System.Diagnostics 命名空间。有关更多信息,请查看article
  • @DivyamSolanki Shell "shutdown /s".
  • 你能告诉我如何导入'system.diagnostics'
【解决方案2】:

Alt-F4 是 VB6 中窗体关闭的内置热键,与大多数其他符合 Windows 应用程序指南的程序一样。

人们通常还有一个菜单选项“退出”并将其加速键设置为“x”,因此您可能有一个带有“F”的文件菜单和一个带有“x”的选项退出,用户可以键入 Alt-F, x 退出。请参阅记事本或数百个其他程序作为示例。

是的,您可以使用骇人听闻的方法,但为什么呢?

【讨论】:

  • 我以为 Alt+F4 是由 Windows 自己处理的……不是吗?
  • 是的,除非程序将其从控制菜单中删除。见support.microsoft.com/kb/110393
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-11-07
  • 1970-01-01
  • 2020-11-03
  • 1970-01-01
  • 2019-04-29
  • 1970-01-01
  • 2012-04-10
相关资源
最近更新 更多