Невозможно подавить ключи в приложении WinForms - PullRequest
2 голосов
/ 13 февраля 2012

Я использую один RichTextBox в приложении C # Windows.Мне нужно запретить пользователю вводить любую клавишу с клавиатуры при определенных условиях.Итак, я написал следующую строку кода в событии KeyDown для RichTextBox:

private void richTextBox1_KeyDown(object sender, KeyEventArgs e)
{
    e.SuppressKeyPress = true;
}

Это нормально работает для английской клавиатуры США.Но когда я изменил свои региональные настройки на Корею и язык клавиатуры на корейский, я могу вводить корейские символы (например, ?????) даже после выполнения вышеуказанного оператора.

даже если я пробовал со следующим кодом

private void richTextBox1_KeyDown(object sender, KeyEventArgs e)
{
    e.SuppressKeyPress = true;
    e.Handled = true;
}

, но безрезультатно.

Как я могу подавить ввод со всеми раскладками клавиатуры?

1 Ответ

0 голосов
/ 13 февраля 2012

Вы действительно хотите отменить нажатия клавиш или запретить пользователю редактировать текст?

Редактирование текста можно легко предотвратить с помощью richTextBox1.ReadOnly = true;

Ваш код, вероятно,не работает, потому что ввод через IME не считается нажатием клавиши.

Еще одна альтернатива - попытка блокировки в обработчике WM_CHAR / KeyPress.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...