How to get a combination of keys in c#

后端 未结 5 1357
旧巷少年郎
旧巷少年郎 2020-11-29 10:12

How can I capture Ctrl + Alt + K + P keys on a C# form? thanks

5条回答
  •  一个人的身影
    2020-11-29 10:49

    It is a chord, you cannot detect it without memorizing having seen the first keystroke of the chord. This works:

    public partial class Form1 : Form {
        public Form1() {
            InitializeComponent();
        }
        private bool prefixSeen;
    
        protected override bool ProcessCmdKey(ref Message msg, Keys keyData) {
            if (prefixSeen) {
                if (keyData == (Keys.Alt | Keys.Control | Keys.P)) {
                    MessageBox.Show("Got it!");
                }
                prefixSeen = false;
                return true;
            }
            if (keyData == (Keys.Alt | Keys.Control | Keys.K)) {
                prefixSeen = true;
                return true;
            }
            return base.ProcessCmdKey(ref msg, keyData);
        }
    }
    

提交回复
热议问题