Вопрос

private void mnuCustomerAdd_Click(object sender, EventArgs e)
    {
        CustomerForm frmCust = new CustomerForm("Add A New Customer");

        int index = lstCustomers.SelectedIndex;
        if (index != -1)
            frmCust.CustomerData = new Customer(customerMngr.GetCustomer(index).ContactData);


        MessageBox.Show("dev1");
        DialogResult dr = frmCust.ShowDialog();
        if (dr == DialogResult.OK)
        {
            MessageBox.Show("dev2");
            if (frmCust.ReadInput())
            {
                MessageBox.Show("dev3");
                customerMngr.AddCustomer(frmCust.CustomerData);
            }
            else
                MessageBox.Show("Please supply all necessary fields with the correct information");
        }
        UpdateCustomerList();

    }

Не понимаю, что я здесь делаю не так, я хочу выполнить условные операторы, если пользователь нажимает «ОК» в форме, которая появляется по адресу frmCust.ShowDialog().На данный момент я могу добраться только до «dev1».

Это было полезно?

Решение

Возможно, ваш диалог не устанавливает диалоговое окно.Убедитесь, что ваши кнопки «ОК» и «Отмена» имеют свои свойства DialogResult, установленные на то, что вы ожидаете.

Другие советы

Обязательно правильно назначьте ДиалогРезультат собственность Form прежде чем он закрылся.Таким образом, он будет возвращен как возвращаемое значение ShowDilaog() вызов.

Есть еще один вариант: использовать Принять кнопку и Кнопка отмены, чтобы обрабатывать соответствующие Enter и Cancel нажатие клавиши.

Поместите точку останова (F9) на строку:

if (dr == DialogResult.OK)
.

Когда диалоговое окно закрывается, у вас будет возможность изучить, к которому установлен dr.

Чтобы получить диалог для возврата Dialogresult.ok, вы можете либо установить его в кнопку OK диалогового окна:

void buttonOK_Click(object sender, EventArgs e)
{ 
    this.DialogResult = DialogResult.OK;
    Close();
}
.

Или вы можете сделать опцию в Tigran's Ответ .

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top