按键关闭表单VB.net

时间:2018-03-12 01:07:25

标签: vb.net windows-forms-designer

所以我一直在研究这个项目,以便在我的闪存驱动器上自动运行,无论何时插入它。它只显示我的联系信息和一条消息,所以我可以将其返回。

因为我希望人们真正阅读该消息,所以关闭按钮被禁用。你必须检查一个小盒子,然后点击“确定”按钮。

当然,每当我插入自己的闪存驱动器时,我都不想这样做。我正在尝试制作键盘快捷键以自动关闭它。我看过这篇文章here,但它对我不起作用。这是该帖子的代码:

Private Sub Form1_KeyDown(sender As Object, e As KeyEventArgs) Handles MyBase.KeyDown
    If e.Alt AndAlso e.KeyCode = Keys.X Then
Application.Exit()
End If
End Sub

非常感谢任何帮助。谢谢!

另外,如果您认为我的代码很草率并且想要清理它,那么就是这样。

Public Class Form1

Private Sub Form1_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
    e.Cancel = True
End Sub

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles ButtonOK.Click
    End
End Sub

Private Sub CheckBox1_CheckedChanged(sender As Object, e As EventArgs) Handles CheckBox1.CheckedChanged
    If CheckBox1.Checked = True Then
        ButtonOK.Enabled = True
    Else
        ButtonOK.Enabled = False
    End If
End Sub

Private Sub Label1_Click(sender As Object, e As EventArgs) Handles Label1.Click
End Sub

Private Sub Form1_KeyDown(sender As Object, e As KeyEventArgs) Handles MyBase.KeyDown
    If e.Alt AndAlso e.KeyCode = Keys.X Then
        End
    End If
End Sub
End Class

1 个答案:

答案 0 :(得分:0)

首先,永远不会使用End。在任何情况下,这都是非常糟糕的。

您应该做的是测试Checked事件处理程序中CheckBox的{​​{1}}值,并且当且仅当它未被检查时才取消。从逻辑上讲,当您检测到所需的组合键时,您应该检查FormClosing并在表单上调用CheckBox

实际上,我可能也不会拨打Close,而是拨打Close上的PerformClick。这样,保证键组合与单击Button完全相同。

Button