Come ottenere l'handle del modulo con get {set?
Domanda
Mi piacerebbe avere il manico della mia forma da una classe diversa (probabilmente Thread). Voglio farlo nel modo io invoco
public int GetHandle
{
get
{
if (this.InvokeRequired)
{
this.Invoke((MethodInvoker)delegate
{
return this.Handle.ToInt32();
});
}
}
}
ottengo un errore "Dal momento che i rendimenti 'System.Windows.Forms.MethodInvoker' vuoto, una parola chiave di ritorno non deve essere seguita da un'espressione oggetto"
Se io non uso l'invoke, ottengo un'eccezione che non sto chiamando il metodo dal thread corrente.
Soluzione
È possibile richiamare ogni delegato, non solo MethodInvoker. Prova questo:
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();
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow