Pergunta

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();

    }

Não entendo o que estou fazendo de errado aqui, quero executar as instruções condicionais se o usuário clicar em OK no formulário que aparece em frmCust.ShowDialog().No momento só consigo chegar ao "dev1".

Foi útil?

Solução

Talvez sua caixa de diálogo não esteja definindo o resultado da caixa de diálogo.Certifique-se de que os botões OK e Cancelar estejam DialogResult propriedades definidas como você espera.

Outras dicas

Certifique-se de atribuir corretamente DialogResult propriedade do Form antes de fechar.Portanto, será retornado como um valor de retorno de ShowDilaog() chamar.

Há outra opção também, é usar Botão Aceitar e Botão Cancelar, para lidar com o correspondente Enter e Cancel pressione o botão.

Coloque um Breakpoint (F9) na linha:

if (dr == DialogResult.OK)

Quando a caixa de diálogo fechar, você terá a oportunidade de examinar o que dr está configurado para.

Para fazer com que a caixa de diálogo retorne DialogResult.OK, você pode configurá-lo no botão OK da caixa de diálogo:

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

Ou você pode fazer a opção no Tigran's responder.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top