Как проверить .NET элементы диалога при использовании автоматического DialogResult? - PullRequest
1 голос
/ 06 ноября 2008

На данный момент я настроил пользовательский диалог отмены с выпадающим списком в c #. Кнопки ok и cancel используют свойство DialogResult, поэтому за ним нет кода. Теперь мне нужно проверить выпадающий список, чтобы убедиться, что он не оставлен пустым, прежде чем отправлять результат диалога.

Возможно ли это?

Ответы [ 5 ]

2 голосов
/ 06 ноября 2008

С здесь

Дважды щелкните поле «Закрытие» и выполните его следующим образом:

private void Second_Closing(object sender, 
        System.ComponentModel.CancelEventArgs e)
{
    // When the user attempts to close the form, don't close it...
    e.Cancel = (dropdown.selecteditemindex >= 0);
}
1 голос
/ 06 ноября 2008

Отключите кнопку ОК, пока в поле со списком не будет установлено правильное значение.

0 голосов
/ 03 января 2013

Вы можете продолжать использовать функциональные возможности диалогов «OK» и «Отмена» в диалоговых окнах, а затем поместить этот код в обработчик Clicked для кнопки «ОК»:

private void OkButton_Clicked(object sender, EventArgs e)
{
    if (!IsValid()) {
        this.DialogResult = System.Windows.Forms.DialogResult.None;
    }
}

В приведенном выше коде IsValid() - это метод, который вы должны реализовать, который проверяет поля ввода в диалоговом окне.

0 голосов
/ 06 ноября 2008

Для этого я не установил DialogResult на кнопку «ОК», а добавил за кнопкой некоторый код.

private void OkButton_Clicked(object sender, EventArgs e)
{
    this.DialogResult = ValueComboBox.SelectedIndex >= 0
        ? DialogResult.Ok
        : DialogResult.None;
}
0 голосов
/ 06 ноября 2008

Если вы хотите что-то проверить, вам всегда нужен код для дизайнера. Для вашего случая вы можете использовать событие «Закрытие» в форме, проверить, что вам нужно, и, если хотите, установить «e.Cancel = true;» - тогда форма не будет закрыта.

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