按键盘上的C#应用程序按钮

按键盘上的C#应用程序按钮,c#,keypress,keyboard-events,C#,Keypress,Keyboard Events,我有一个示例C#应用程序,它有如下4个按钮: 我希望当我按下一个向上按钮时,其他按钮分别被按下C#应用程序中相应的按钮(当窗口聚焦时),并与键盘同时被按下。如何做到这一点?我试过使用KeyEventArgs和KeyPress但我觉得有点困惑 LE:同时按下两个按钮的可能性: ====================================================== 稍后编辑:我真的不明白。我已经创建了一个新项目。整个守则是: using System; using Syste

我有一个示例C#应用程序,它有如下4个按钮:

我希望当我按下一个向上按钮时,其他按钮分别被按下C#应用程序中相应的按钮(当窗口聚焦时),并与键盘同时被按下。如何做到这一点?我试过使用KeyEventArgsKeyPress但我觉得有点困惑

LE:同时按下两个按钮的可能性:

======================================================

稍后编辑:我真的不明白。我已经创建了一个新项目。整个守则是:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace test3
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            this.KeyDown += Form1_KeyDown;
        }

        private void Form1_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Up) { MessageBox.Show("|"); }
        }
    }
}

这是新项目的全部代码,为什么按下键盘上的向上按钮时不显示te消息框?它适用于字母…

使用KeyUp和KeyDown。按键事件不是由箭头键触发的

编辑:这适合我

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

        this.KeyDown += Form1_KeyDown;
    }

    void Form1_KeyDown(object sender, KeyEventArgs e)
    {
        if (e.KeyCode == Keys.Up) { MessageBox.Show("|"); }
    }
}
根据:


我试过这个。当按键(^v)只是将焦点移动到不同的按钮,但不想执行时,请单击。。。它仅适用于字母,不适用于<>^,但执行的单击不可见。是否有任何方法可以使其完全像点击按钮一样可见?可能是重复的
protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
{
    switch (keyData)
    {
        case Keys.Right:
            button1.PerformClick();
            return true;
        case Keys.Left:
             //...
        default:
            return base.ProcessCmdKey(ref msg, keyData);
    }
}