2009-04-19 4 views
0

Je voudrais obtenir le handle de mon formulaire d'une classe différente (probablement thread). Je veux faire la façon dont je n'invoqueComment obtenir le handle du formulaire avec get {set?

public int GetHandle 
    { 
     get 
     { 
      if (this.InvokeRequired) 
      { 
       this.Invoke((MethodInvoker)delegate 
       { 
        return this.Handle.ToInt32(); 
       }); 
      } 
     } 
    } 

Je reçois une erreur « Depuis retourne « System.Windows.Forms.MethodInvoker » vide, un mot-clé de retour ne doivent pas être suivies par une expression d'objet »

Si je n'utilise pas l'appel, je reçois une exception que je n'appelle pas la méthode du thread en cours.

Répondre

1

Vous pouvez appeler n'importe quel délégué, pas seulement MethodInvoker. Essayez ceci:

public int GetHandle 
    { 
     get 
     { 
      if (this.InvokeRequired) 
      { 
       return (int)this.Invoke((GetHandleDelegate)delegate 
       { 
        return this.Handle.ToInt32(); 
       }); 
      } 
      return this.Handle.ToInt32(); 
     } 
    } 
private delegate int GetHandleDelegate(); 
+0

Merci! Comment.Length = 10; –

Questions connexes