代码之家  ›  专栏  ›  技术社区  ›  Tom

C#WinForms。获取所有键盘数据

  •  0
  • Tom  · 技术社区  · 6 年前

    这应该比它已经挣扎了一段时间要简单得多。我想在Windows窗体上捕获击键。我必须能够检测所有的ascii字符,以及是否移位,alt或控制键被按下。我尝试了通常的按键事件,按键事件,但没有一个能让你得到所有的字符。例如,keydown事件非常适合获取功能键、移位字符,但它不能获取+或-这样的字符,或者可以吗? 所以我尝试了以下方法:

    protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
    {
        if (keyData == (Keys.Control | Keys.A))
        {
            MessageBox.Show("You pressed Ctrl+A!");
    
            return true;
        }
    
        return false;
    }
    

    谢谢

    1 回复  |  直到 6 年前
        1
  •  1
  •   Levon Ravel    6 年前

    这个怎么样?如果同时按下两个键,事件键数据将显示所按下的两个键。利用Windows窗体中的属性事件并选择KeyDown。

    private void Form1_KeyDown(object sender, KeyEventArgs e)
    {
        MessageBox.Show("Keys Pressed: " + e.KeyData.Tostring());
    }
    

    Plus and Shift together Ctrl and Shift together