Разделение должно работать нормально.
Для Ctrl + \ :
if (keyData == (Keys.Control | Keys.OemPipe) )
Для Ctrl + / :
if (keyData == (Keys.Control | Keys.OemQuestion) )
По какой-то причине (не знаю почему), когда вы перехватываете Ctrl + эти клавиши, они сопоставляются со «сдвинутыми» раскладками.
Изменить:
Один трюк для поиска этого или любого другого ключа. Установите точку останова на любой строке в этом методе и посмотрите на значение keyData
, когда вы нажмете клавишу, которую пытаетесь перехватить. Я рекомендую делать это, не нажимая на Control. Затем вы можете использовать отражатель, чтобы получить все конкретные значения для ключей
и найти «ключ» с соответствующим значением.