Question

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

    }

Je ne comprends pas ce que je fais mal ici, je veux exécuter les instructions conditionnelles si l'utilisateur frappe ok dans le formulaire qui apparaît à frmCust.ShowDialog(). Pour le moment, je ne peux que me rendre à "Dev1".

Était-ce utile?

La solution

Peut-être que votre boîte de dialogue ne définit pas le résultat de la boîte de dialogue. Assurez-vous que vos boutons OK et annuler ont leur DialogResult Propriétés définies sur ce que vous attendez.

Autres conseils

Assurez-vous d'attribuer correctement Dialogreult propriété du Form avant qu'il ne ferme. Il sera donc retourné comme une valeur de retour de ShowDilaog() appel.

Il y a aussi une autre option, c'est utiliser Accepterbutton et Annuler, afin de gérer correspondant Enter et Cancel appuyez sur la touche.

Placez un point d'arrêt (F9) sur la ligne:

if (dr == DialogResult.OK)

À la fermeture de la boîte de dialogue, vous aurez la chance d'examiner dr est réglé sur.

Pour faire en sorte que la boîte de dialogue renvoie dialogResult.ok, vous pouvez soit le définir dans le bouton OK de la boîte de dialogue:

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

Ou vous pouvez faire l'option dans Tigran's réponse.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top