【发布时间】: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
-
我刚刚测试过,如果
TextBox或ListBox具有焦点但没有Button,则表单会引发KeyDown事件。它可能与Enter对Button具有特殊含义有关,即引起点击。你看到同样的行为吗?如果这是问题所在,那么您可能必须单独处理Button的PreviewKeyDown事件。
标签: vb.net winforms button backcolor