Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Почему мое событие проверки не запускается в C#?

Автор вопроса: JerryОтветов: 1

У меня есть форма, которая создается динамически. Это приложение WinForms.

Эта форма представляет собой просто меню и ряд текстовых полей и меток. Ради этого примера вы можете игнорировать метки.

Моя проблема: когда я редактирую материал в текстовых полях, а затем щелкаю меню, чтобы выдать "Сохранить", текст из последнего текстового поля все еще не выдал свой метод "Проверка". Похоже, это связано с тем, что элемент управления по-прежнему имеет фокус, а меню находится в отдельном потоке.

Как я могу заставить события проверки запускаться, когда пользователь нажимает "сохранить"? Я не знаю, в каком текстовом поле находится пользователь (если есть), и выдача SomeKnownControl.Focus(); в функции "сохранить", похоже, не помогает.

winformsvalidating-event

Ответы

Ответ 1 · рейтинг 32 · geofftnz

У меня было это раньше. В вашей форме:

private void SaveButtonClick(...)
{
    if (this.ValidateChildren())
    {
        // do save
    }
}

Проверка детей в MSDN

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы