2010-02-14 1 views
1

J'ai ce code:System.ArgumentException n'a pas été géré lors de l'utilisation de - = sur un délégué d'événement?

public void setPanelHalfHorizontalScreen(Panel p) 
     { 
      if (p != null) 
      { 
       p.Width = Screen.PrimaryScreen.Bounds.Width/2 - 2; 
       this.panelsForHalfScreen.Add(p.Name, p); 

       // http://stackoverflow.com/questions/2261828/does-an-event-gets-executed-twice-if-callback-was-assigned-twice-to-the-object 
       this.form.Resize -= new EventHandler(form_Resize); // error raised on this line: ArgumentException was unhandled 
       this.form.Resize += new EventHandler(form_Resize); 
      } 
     } 

     void form_Resize(object sender, EventArgs e) 
     { 

      foreach (DictionaryEntry p in panelsForHalfScreen) 
      { 
       this.setPanelHalfHorizontalScreen((Panel)p.Value); 
      } 
     } 

Comment puis-je résoudre ce problème?

EDIT alt text http://img519.imageshack.us/img519/3352/bb4u.jpg

Répondre

1

Etes-vous sûr que cette ligne ne jette pas ArgumentException?

this.panelsForHalfScreen.Add (p.Name, p);

cause de la méthode Ajouter ArgumentException si la clé lancers francs est déjà dans Hashtable

+0

vérifier l'image que j'ajouté – Pentium10

+0

sont là des détails au sujet de l'exception? comme le message ou la trace de la pile – limpalex

+0

oui, form_resize appelant -> setPanelHalfHorizontalScreen -> exception se produit – Pentium10

Questions connexes