【问题标题】:Changing backColor of button when pressed Enter in keyboard在键盘中按下 Enter 时更改按钮的背景颜色
【发布时间】:2021-02-24 09:56:35
【问题描述】:
 Private Sub Form1_KeyDown(sender As Object, e As KeyEventArgs) Handles Me.KeyDown
        If e.KeyCode = Keys.Enter Then
            Button1.BackColor = Color.Aqua
        End If
    End Sub

如果按下回车键,我想更改按钮的背景颜色,但当我按下回车键时它什么也不做。 Form KeyPreview 设置为 true。如果 Enter 键被另一个键替换,则执行代码

【问题讨论】:

  • 首先,为什么要标记这个问题VBA?在将标签添加到您的问题之前,请阅读标签的描述。
  • 至于问题,您是否检查过该代码是否正在执行?您应该在此处发布之前完成此操作并将该信息包含在您的问题中。如果不执行,代码将无法做某事。如果您没有在表单上将KeyPreview 属性设置为True,那么当子控件获得焦点时它不会引发键盘事件。
  • @jmcilhinney 当输入键被另一个键替换时代码正在执行。KeyPreview 属性设置为 True
  • 我刚刚测试过,如果TextBoxListBox 具有焦点但没有Button,则表单会引发KeyDown 事件。它可能与EnterButton 具有特殊含义有关,即引起点击。你看到同样的行为吗?如果这是问题所在,那么您可能必须单独处理 ButtonPreviewKeyDown 事件。

标签: vb.net winforms button backcolor


【解决方案1】:

您可以像这样覆盖ProcessCmdKey

Public Class Form1

    Protected Overrides Function ProcessCmdKey(ByRef msg As Message, keyData As Keys) As Boolean
        If keyData = Keys.Enter Then
            Button1.BackColor = Color.Aqua
        End If
        Return MyBase.ProcessCmdKey(msg, keyData)
    End Function

End Class

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-04-01
    • 1970-01-01
    • 2019-04-14
    • 1970-01-01
    • 2016-12-03
    • 1970-01-01
    • 2020-11-07
    • 2015-11-22
    相关资源
    最近更新 更多