按下回车键时如何停止触发按钮? (重点)
How do I stop a button from triggering when the enter key is pressed? (focused)
(我会在这里打个招呼,但 Whosebug 总是出于某种原因将其删除)
我的问题是,在我的 Visual Basic 窗体上,我用来关闭窗体的按钮可以由回车键触发。这是一个问题,因为我的表单打开了一个经常使用表单的网页,这意味着表单上的回车键将关闭 window!
因此,我需要找到一种方法来停止对该按钮的关注。它是一个自定义按钮并且是它自己的 class 但继承自普通按钮。这是一些图表:
第一阶段:在用户关注WebKitBrowser
之前
第二阶段:用户关注WebKitBrowser后
如您所见,该按钮 "focused" 带有白色边框,类似于边框为蓝色的普通 Windows 按钮。如果我在这个阶段按回车键,表单就会关闭。
总之,或者 TL;DR,我如何阻止我的关闭按钮被聚焦?
默认情况下,您的按钮包含在产生焦点效果的 Tab 键顺序中。
尝试从 Tab 键顺序中删除该按钮。您可以在加载表单时将按钮的 TabStop
设置为 False
。我尝试了下面的示例,它对我有用。
之前
代码:
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Me.Close()
End Sub
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
End Sub
End Class
之后
代码:
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Me.Close()
End Sub
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Button1.TabStop = False
End Sub
结束Class
(我会在这里打个招呼,但 Whosebug 总是出于某种原因将其删除)
我的问题是,在我的 Visual Basic 窗体上,我用来关闭窗体的按钮可以由回车键触发。这是一个问题,因为我的表单打开了一个经常使用表单的网页,这意味着表单上的回车键将关闭 window!
因此,我需要找到一种方法来停止对该按钮的关注。它是一个自定义按钮并且是它自己的 class 但继承自普通按钮。这是一些图表:
第一阶段:在用户关注WebKitBrowser
之前
第二阶段:用户关注WebKitBrowser后
如您所见,该按钮 "focused" 带有白色边框,类似于边框为蓝色的普通 Windows 按钮。如果我在这个阶段按回车键,表单就会关闭。
总之,或者 TL;DR,我如何阻止我的关闭按钮被聚焦?
默认情况下,您的按钮包含在产生焦点效果的 Tab 键顺序中。
尝试从 Tab 键顺序中删除该按钮。您可以在加载表单时将按钮的 TabStop
设置为 False
。我尝试了下面的示例,它对我有用。
之前
代码:
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Me.Close()
End Sub
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
End Sub
End Class
之后
代码:
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Me.Close()
End Sub
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Button1.TabStop = False
End Sub
结束Class