getで、フォームのハンドルを取得する方法{設定されていますか?
質問
私は(おそらくスレッド)別のクラスから自分のフォームのハンドルを取得したいのですが。 私はそれを私が起動しないやり方をしたい。
public int GetHandle
{
get
{
if (this.InvokeRequired)
{
this.Invoke((MethodInvoker)delegate
{
return this.Handle.ToInt32();
});
}
}
}
私はエラーを取得
「『System.Windows.Forms.MethodInvoker』戻り値のボイドので、returnキーワードは、オブジェクト式に続いてはいけません」 私は呼び出しを使用しない場合は、、私は、現在のスレッドからメソッドを呼び出していないよ例外を取得ます。
解決
あなたは任意のデリゲートだけでなく、MethodInvokerを呼び出すことができます。これを試してください:
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();
所属していません StackOverflow