2017-08-31 3 views
0

J'ai un formulaire (frmcustlist). En même temps sur cette liste, je scanne la liste en utilisant un jeu de données et je vérifie si elle est maintenant 0 (aucun client restant).Fermer le formulaire en cours si les résultats de la boîte de dialogue sont annulés

À ce stade, j'ai une boîte de dialogue qui s'affiche pour demander un nouveau nom de client. Si elles appuient sur OK tout va bien. J'ai également une validation sur la boîte pour l'entrée. Cependant, s'ils pressent CANCEL, je peux le faire sortir de la boîte de dialogue, mais pas fermer frmcustlist à partir de laquelle le dialogue a été appelé.

using (inputbox ipfirst = new inputbox("Enter Customer First Name:", "", "")) 
        { 
         if (ipfirst.ShowDialog() == DialogResult.OK) 
         { 
          newfirstname = ipfirst.answer; 
         } 
         else 
         { 
          this.Close(); 
         } 

        } 

Maintenant, this.close() ne fonctionne pas du tout .. donc j'utilisé return; qui l'arrête en cours de demander le nom et la date de naissance .. mais je veux qu'il cesse de poser des questions (comme le retour) Aussi bien que frmcustlist proche. ... Merci pour tout conseil que vous pouvez donner.

ps. cela apparaît dans quelques endroits, mais est appelé dans frmcustlist_load ainsi .. je ne sais pas si cela va faire une différence ou non!

+1

Avez-vous montrer votre formulaire avec ShowDialog()? puis essayez _this.DialogResult = DialogResult.Cancel; _ au lieu de _this.Close() _ – Steve

+0

@Steve. Mate merci pour ça. Je savais que c'était basique et il me manquait quelque chose. 100% correct. Merci :) –

Répondre

0

La réponse a été faite par STEVE dans les commentaires. Comme frmcustlist s'appelait lui-même Dialog, j'ai fini par devoir donner à ce dialogue un résultat Cancel.

code final qui fonctionne:

using (inputbox ipfirst = new inputbox("Enter Customer First Name:", "", "")) 
        { 
         if (ipfirst.ShowDialog() == DialogResult.OK) 
         { 
          newfirstname = ipfirst.answer; 
         } 
         else 
         { 
          DialogResult = DialogResult.Cancel; 
          return; 
         } 

        }