Как обнаружить Ctrl-Forward Slash в приложении WinForm

Ниже приведен код Ctrl + F (из другого сообщения SO). Но как вы обнаруживаете Ctrl + ForwardSlash? или Ctrl + / (Примечание: деление не работает)

    protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
    {
        if (1 == 1) //keyData == (Keys.Control | Keys.F))
        {
            MessageBox.Show("What the Ctrl+F?");
            return true;
        }
        return base.ProcessCmdKey(ref msg, keyData);
    }

1 ответов


Divide должен работать нормально.

на Ctrl + \:

if (keyData == (Keys.Control | Keys.OemPipe) )

на Ctrl + /:

if (keyData == (Keys.Control | Keys.OemQuestion) )

по какой-то причине (не уверен, почему), когда вы ловите Ctrl + эти ключи, они сопоставляются с" сдвинутыми " приложениями клавиш.


Edit:

один трюк для поиска этого или любого другого ключа. Установите точку останова на любой линии в этом методе и посмотрите на keyData значение когда вы нажимаете клавишу, вы пытаетесь поймать. Я рекомендую сделать это, не задев контроля. Затем вы можете использовать reflector для получения всех определенных значений для Keys, и найдите "ключ" с соответствующим значением.