如何使用get {set?来获取表单的句柄?

时间:2009-04-19 10:59:09

标签: c# winforms invoke handle

我想从另一个类(可能是线程)获取我的表单句柄。 我想按照我调用的方式进行操作

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

我收到错误“因为'System.Windows.Forms.MethodInvoker'返回void,返回关键字后面不能跟一个对象表达式”

如果我不使用调用,我会得到一个异常,我没有从当前线程调用该方法。

1 个答案:

答案 0 :(得分:1)

您可以调用任何委托,而不仅仅是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();