我正在使用此代码来检测是否在文本框的KeyDown事件中按下了修饰键。

    private void txtShortcut_KeyDown(object sender, KeyEventArgs e)
    {
        if (e.Shift || e.Control || e.Alt)
        {
            txtShortcut.Text = (e.Shift.ToString() + e.Control.ToString() + e.Alt.ToString() + e.KeyCode.ToString());

        }
    }


如果同时也按下了字母A之类的非修饰键,我将如何显示实际的修饰键名而不是布尔结果,并且还显示修饰键末尾处按下的非修饰键?有没有办法在同一个txtShortcut.Text =();中完成所有操作?线?

最佳答案

您可以检查Control.ModifierKeys-因为这是一个枚举,应该更人性化。或者,只是

string s = (e.Shift ? "[Shift]+" : "") + (e.Control ? "[Ctrl]+" : "")
           + (e.Alt ? "[Alt]+" : "") + e.KeyCode;

关于c# - C#:在此keydown事件中如何显示修饰键名称+非修饰键名称?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/676544/

10-10 16:45