2010-04-19 4 views
0

J'ai une zone de texte sur un formulaire avec une méthode appelée à partir de l'événement txPredio_Leave.Annuler Quitter l'événement lors de la fermeture

Mon problème est que est l'utilisateur a le focus sur la zone de texte puis fermez le formulaire en cliquant sur le petit X icône de fermeture dans le coin supérieur ou en appelant this.ActiveMdiChild.Close(); ou en appelant

private void mnucerrarTodas_Click(object sender, EventArgs e) 
    { 
     foreach (Form form in this.MdiChildren) 
     { 
      form.Close(); 
     } 
    } 

Le txPredio laisser exécuter la méthode .. alors j'ai besoin ne pas excuter cette méthode lorsque le formulaire se ferme.

i ont penser que une solution pourrait être demander au cas de congé si le formulaire est ferme

 private void txPredio_Leave(object sender, EventArgs e) 
     { 
      if(!form is closing)//pseudo code 
       Check_Load_Predio(); 
     } 

ou toute autre solution pourrait être

private void MainForm_FormClosing(object sender, FormClosingEventArgs e) 
    { 
     //code for cancel the txPredio_Leave event 
    } 

Solution Here travail Indifférent pour moi. Ensuite, j'ai besoin d'une solution pour mon problème. Merci d'avance

Répondre

2

Essayez de supprimer le gestionnaire Leave dans FormClosing.

EDIT: Comme ceci:

private void MainForm_FormClosing(object sender, FormClosingEventArgs e) 
{ 
    txPredio.Leave -= txPredio_Leave; 
} 
Questions connexes