是否可以在 windows 形式的 c# 中制作两个字母的键码

Is it possible to make a two letter keycode in windows form c#

我试过这个,但没用。

     if (e.Control && e.KeyCode == Keys.B &&e.KeyCode == Keys.R )
        {
            btn.PerformClick();
        }

确保按下 B 然后按下 R 的一种方法是使用 bool 变量这表明 B 被按下。

这是一个完整的例子:

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

        this.KeyPreview = true;
        this.KeyDown += new KeyEventHandler(Form1_KeyDown);
    }

    bool readyForRKey;

    private void Form1_KeyDown(object sender, KeyEventArgs e)
    {
        if (readyForRKey && e.KeyCode == Keys.R)
        {
            btn.PerformClick();
        }

        readyForRKey = (e.KeyData == (Keys.Control | Keys.B));
    }
}

如果用户按下 (Ctrl+B, R) 无论如何都会起作用他们是否在按下 R.

之前释放 Ctrl

另一方面,如果您想确保 BR 都按下 at同时可能对你有帮助。

请像这样尝试 ProcessCmdKey()

protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
{
    if(keyData == (Keys.Control | Keys.B|Keys.R))
    {
        btn.PerformClick();
        return true;
    }

    return base.ProcessCmdKey(ref msg, keyData);
}