我已经尝试使用 KeyUp 和 KeyDown 事件来读取键盘输入,但是只要我将其他控件放在 Winform 上,就不会读取这些键。我如何确保 key 被读取?
最佳答案
您可以在表单上设置 KeyPreview = true
以捕获键盘事件。
已编辑让您了解:
private void Form1_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.A)
e.SuppressKeyPress = true;
}
接收键盘事件并在按下 A 时丢弃的愚蠢示例。
如果焦点位于文本框中,您会看到写入的是文本,而不是 A!!
再次编辑:我从 VB.NET 示例中获取了这段代码。
在您的用户控件中,使用文本框的“按键”事件引发“用户控件事件”。
此代码将在您的自定义用户控件中:
'Declare the event
Event KeyPress(KeyAscii As Integer)
Private Sub Text1_KeyPress(KeyAscii As Integer)
RaiseEvent KeyPress(KeyAscii)
End Sub
关于c# - 如何读取 Winform 上的键盘输入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7527000/