C# или.NET, сбрасывающая буфер клавиатуры

/([\u00c0-\u01ffa-zA-Z'\-]+[ ]?[*]?[\u00c0-\u01ffa-zA-Z'\-]*)+/;

Попробуйте это. Вы также можете принудительно начать с char, используя ^, и завершить с char, используя $

.
6
задан Amar Patel 10 June 2009 в 21:06
поделиться

3 ответа

Я не уверен, что вы сможете это сделать. Нажатия клавиш попадают в очередь событий для основного цикла событий. Любое действие, которое вы предпримете для отмены этих нажатий клавиш, будет помещено в очередь после нажатия клавиш.

Цикл событий перейдет к вашему действию отмены только после того, как будут обработаны нажатия клавиш.

1
ответ дан 16 December 2019 в 21:45
поделиться

Установите для KeyPreview в форме значение true , затем перехватите событие KeyPress и установите e.Handled до истина , если была нажата кнопка «Отмена».

РЕДАКТИРОВАТЬ : перехватить событие KeyPress формы

2
ответ дан 16 December 2019 в 21:45
поделиться

You could do BIOS level flushing (http://support.microsoft.com/?scid=kb%3Ben-us%3B43993&x=22&y=10) but I would advise against this low level approach since Windows also does keyboard buffering on a higher level.

The best way seems to be to eat any arriving char while a specific flag is set. As SLaks suggests I would set KeyPreview to true and set e.Handled to true either in KeyPress or in KeyDown.. should make no difference.

0
ответ дан 16 December 2019 в 21:45
поделиться
Другие вопросы по тегам:

Похожие вопросы: