Должен ли TextBox вызывать проверяющее событие при нажатии кнопки Return? - PullRequest
2 голосов
/ 26 ноября 2010

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

У васзнаете, это ожидаемое поведение или нет?

Спасибо.

Ответы [ 4 ]

2 голосов
/ 23 мая 2012

Я использую метод, аналогичный ответу Джаведа Акрама, но вместо вызова функции проверки я просто вызываю фокус на родителе ...

private void TextBox_KeyPress(object sender, KeyPressEventArgs e)
{
    if (e.KeyChar == (char)Keys.Enter)
    {
        (sender as TextBox).Parent.Focus();
    }
}

Когда TextBox теряет фокус, он вызывает собственное событие Validating

2 голосов
/ 26 ноября 2010

см .: Событие Control.Validating

Примечание. Если для свойства CausesValidation установлено значение false, события Validating и Validated подавляются.

1 голос
/ 26 ноября 2010

Нет не так, как я помню. TextBox обычно проверяется только тогда, когда фокус получен / потерян, если что-то не вызывает его вручную.

Посмотрите на ссылку Болу для получения списка проверяющих триггеров

0 голосов
/ 26 ноября 2010

Событие проверки запускается, когда элемент управления потерял свой фокус, поэтому вы можете инициировать событие проверки самостоятельно в событии keyPress после проверки, является ли введенный ключ Ввод ключ.

Пример кода:

private void someTextBox_KeyPress(object sender, KeyPressEventArgs e)
    {
        if (e.KeyChar == (char)Keys.Enter)
        {
            someTextBox_Validating(sender, new CancelEventArgs());
        }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...