Как обрабатывать события KeyDown и KeyUp в TextBox Silverlight 3 - PullRequest
0 голосов
/ 21 апреля 2010

Я присоединяю обработчики к событиям KeyDown и KeyUp текстового поля Silverlight 3 следующим образом:

_masterTextBox.KeyDown += (s, args) =>
{
     CheckForUserEnteredText(MasterTextBox.Text);
     args.Handled = false;
};

_masterTextBox.KeyUp += (s, args) => { UpdateText(MasterTextBox.Text); };

Когда я закомментирую обработчик KeyDown, KeyUp перехватит событие, в противном случае сработает только обработчик KeyDown.

Может кто-нибудь объяснить, почему обработчик событий KeyUp не срабатывает после того, как обработчик KeyDown работает?

Спасибо.

Ответы [ 2 ]

0 голосов
/ 04 мая 2010

Оказывается, проблема была в том, что я устанавливал точку останова в методе keydown. По-видимому, когда вы устанавливаете точку останова, она пропускает событие keyup.

0 голосов
/ 21 апреля 2010

Я думаю, вам нужно заглянуть внутрь своей функции CheckForUserEnteredText. Разумеется, из-за одного только опубликованного кода нет причин, по которым KeyUp не должен срабатывать, и это происходит в моем тестировании.

Возможно, CheckForUserEnteredText что-то делает, чтобы это предотвратить? Похоже, у вас есть открытое поле / свойство с именем MasterTextBox и одно с именем _masterTextBox, вам нужно оба? Может быть, KeyUp срабатывает, но UpdateText не выполняет то, что вы ожидаете? Список можно продолжить, суть в том, что с кодом, который вы опубликовали, проблем нет.

...