C#键在Windows窗体UserControl中按下了监听器

Zap*_*ica 1 c# keypress keylistener winforms

美好的一天,

我想在表单用户控件中添加键侦听器.哪个包含在主表单中.

当用户按下我的应用程序中的键时,我希望它做一些事情.

我该怎么做呢?

例如.如果我按下w然后会出现一个弹出窗口,说你按了w.

我在用户控件类中试过这个;

  private void UC_ControlsTank_KeyPress(object sender, KeyPressEventArgs e)
    {
        Console.Write("You pressed:" + e.KeyChar);
    }
Run Code Online (Sandbox Code Playgroud)

但是,当我按键时似乎没有任何事情发生.

编辑:

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }

    private void Form1_KeyPress(object sender, KeyPressEventArgs e)
    {
        MessageBox.Show(e.KeyChar.ToString());
    }
}
Run Code Online (Sandbox Code Playgroud)

这是我的表单:以下是我在visual studio中链接的方式: 在此输入图像描述

Kur*_*ran 9

首先,在捕获KeyPress之前,您必须KeyPreview将Win Form 的属性设置为true.除非您将其设置为true,否则将无法捕获KeyPress.


Dav*_*ton 5

有一个KeyPressed事件你可以使用

Control.KeyPress 事件

System.Windows.Forms.KeyEventArgs e会告诉你按下了什么键

编辑:

所以我只是在示例应用程序上尝试了这个,效果很好

    private void Form1_KeyPress(object sender, KeyPressEventArgs e)
    {
        MessageBox.Show(e.KeyChar.ToString());
    }
Run Code Online (Sandbox Code Playgroud)