How do I capture the enter key in a windows forms combobox

前端 未结 7 526
盖世英雄少女心
盖世英雄少女心 2021-01-07 21:33

How do I capture the enter key in a windows forms combo box when the combobox is active?

I\'ve tried to listen to KeyDown and KeyPress and I\'ve created a subclass a

7条回答
  •  时光说笑
    2021-01-07 21:55

    In case you define AcceptButton on your form, you cannot listen to Enter key in KeyDown/KeyUp/KeyPress.

    In order to check for that, you need to override ProcessCmdKey on FORM:

    protected override bool ProcessCmdKey(ref Message msg, Keys keyData) {
        if ((this.ActiveControl == myComboBox) && (keyData == Keys.Return)) {
            MessageBox.Show("Combo Enter");
            return true;
        } else {
            return base.ProcessCmdKey(ref msg, keyData);
        }
    }
    

    In this example that would give you message box if you are on combo box and it works as before for all other controls.

提交回复
热议问题