Question

Je voudrais obtenir la poignée de ma forme d'une autre classe (filetage probablement). Je veux faire la façon dont j'invoque

    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 ne pas utiliser l'Invoke, je reçois une exception que je ne suis pas d'appeler la méthode du thread courant.

Était-ce utile?

La solution

Vous pouvez appeler un délégué, non 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();
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top