【问题标题】:How do I stop a button from triggering when the enter key is pressed? (focused)按下回车键时如何阻止按钮触发? (重点)
【发布时间】:2015-06-14 16:49:05
【问题描述】:

(我会在这里打个招呼,但 Stackoverflow 总是出于某种原因将其删除)
我的问题是,在我的 Visual Basic 表单上,我用来关闭表单的按钮可以由 enter 键触发。这是一个问题,因为我的表单打开了一个经常使用表单的网页,这意味着表单上的回车键将关闭窗口!

因此,我需要找到一种方法来停止对这个按钮的关注。它是一个自定义按钮,是它自己的类,但继承自普通按钮。以下是一些图表:

第 1 阶段:在用户关注 WebKitBrowser 之前



第二阶段:用户关注WebKitBrowser后



如您所见,该按钮以白色边框“聚焦”,类似于边框为蓝色的普通 Windows 按钮。如果我在这个阶段按 Enter 键,表单将关闭。

总之,或 TL;DR,我如何阻止我的关闭按钮被聚焦?

【问题讨论】:

  • 尝试在表单加载时将TabStop = False 添加到关闭按钮。我认为焦点是标签顺序中包含的按钮的结果?

标签: vb.net forms button focus


【解决方案1】:

默认情况下,您的按钮包含在导致焦点效果的 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

结束类

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-01-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多