c# - 如何读取 Winform 上的键盘输入?

标签 c# winforms keyboard

我已经尝试使用 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/

相关文章:

iphone - 如何禁用 UITextView iPhone 键盘中的自动完成功能

ios - 如何使用 phonegap 防止键盘在 iOS 应用程序上推 webview

c# - 枚举类模式是否与 DI 不兼容?

c# - ormlite - 生成 poco 文件

c# - 如何选择 Windows 窗体文本框中的所有文本?

c# - Ninject 属性注入(inject)返回 null

c# - 在文本框中设置文本颜色 C#

c# - 无法在 Windows 10 通用应用程序中接收推送通知

c# - 将可移植类库(以 DLL 形式)添加到 Xamarin Studio

cordova - 显示/隐藏 Cordova 的软键盘