Guai con form.diaGresult.
-
12-11-2019 - |
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".
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 .