Domanda

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

    }
.

Non capisco cosa sto facendo male qui, voglio eseguire le dichiarazioni condizionali se l'utente colpisce OK nel modulo che appare a frmCust.ShowDialog(). Al momento posso solo arrivare a "Dev1".

È stato utile?

Soluzione

Forse il tuo dialogo non sta impostando il risultato della finestra di dialogo.Assicurati che i pulsanti OK e Annulla abbiano le loro proprietà DialogResult impostate su ciò che ti aspetti.

Altri suggerimenti

Assicurarsi correttamente Assegnare correttamente DIALGRESULT Proprietà del Form prima che chiuse. Quindi verrà restituito come un valore di ritorno della chiamata ShowDilaog().

C'è anche un'altra opzione, è usare AccettiamoButton e cancelbutton , al fine di gestire il corrispondente generacolodicetagcode e la pressione del tasto Enter.

Posiziona un punto di interruzione (F9) sulla linea:

if (dr == DialogResult.OK)
.

Quando la finestra di dialogo si chiude, avrai la possibilità di esaminare ciò che è impostato dr.

Per ottenere la finestra di dialogo per restituire il dialogresult.ok è possibile impostarlo nel pulsante OK della finestra di dialogo:

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

o puoi fare l'opzione in Tigran's Risposta .

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top