2012-12-24 14 views
5

Ho due moduli nella mia domanda. Essi modo in cui mi chiamano Form 2 è come questo:Il modulo si chiude quando non dovrebbe

Modulo 1:

private void btnTest_Click(object sender, EventArgs e) 
{ 
    DialogResult result = new System.Windows.Forms.DialogResult(); 
    Add_Link addLink = new Add_Link(); 
    result=addLink.ShowDialog(); 

    if (result == System.Windows.Forms.DialogResult.OK) 
    { 
     // 
    } 
} 

Modulo 2:

private void btnAdd_Click(object sender, EventArgs e) 
{    
    if(validURL(txtSubLink.Text)) 
    { 
     HyperLink add = new HyperLink(txtSubLink.Text,txtSubText.Text,"URL"); 
     this.build = add;     
    } 
    else 
    { 
     MessageBox.Show("Valid URL Needed! " + txtSubLink.Text, "ERROR"); 
    }    
} 

Il mio problema è se l'utente fa clic sul pulsante Add, gli spettacoli messaggio di errore (perché i dati non sono validi o le caselle di testo sono vuote) MA chiude il modulo. Voglio solo che l'utente chiuda il modulo e restituisca i dati se le due caselle di testo contengono i dati corretti. Se le due caselle di testo non contengono i dati corretti O è vuoto, quando l'utente fa clic su Aggiungi, il messaggio di errore dovrebbe essere visualizzato, e Form 2 dovrebbe rimanere aperto, Come posso che succeda ...?

+1

non vedo il codice che fa scattare la chiusura modulo ... Sono perplesso – miniBill

+0

@miniBill - Nel primo if sul modulo 2 si chiude a prescindere o un errore o meno. –

risposta

8

Ho il sospetto che il tuo btnAdd abbia la sua DialogResult proprietà impostata su OK. Disattivalo e quindi aggiungi this.DialogResult = DialogResult.OK nel gestore eventi quando sei soddisfatto dell'input.

private void btnAdd_Click(object sender, EventArgs e) 
{ 

    if(validURL(txtSubLink.Text)) 
    { 
     HyperLink add = new HyperLink(txtSubLink.Text,txtSubText.Text,"URL"); 
     this.build = add; 
     this.DialogResult = DialogResult.OK; 

    } 
    else 
    { 
     MessageBox.Show("Valid URL Needed! " + txtSubLink.Text, "ERROR"); 
    } 

} 
+0

Nevermind, your right. Ho messo this.btnAdd.DialogResult = System.Windows.Forms.DialogResult.OK, invece di this.DialogResult = DialogResult.Ok. Ora funziona. Grazie –

Problemi correlati