0

我有一个继承自 System.Windows.Forms.Button 的自定义控件。

我有一个名为 Enabled 和 DelegateProperty 的属性。

public class Button : System.Windows.Forms.Button
{
    public bool DelegateProperty { get; set; }


    public new bool Enabled
    {
        get { return base.Enabled; }
        set
        {
            if (DelegateProperty)
            {
                MethodInvoker action = delegate
                {
                    base.Enabled = value;
                };
                this.BeginInvoke(action);
            }
            else
                base.Enabled = value;
        }
    }
}

当我在该控件中将 DelegateProperty 设置为 true 时,它​​在设计时给了我这个错误。

“在创建窗口句柄之前,不能在控件上调用 Invoke 或 BeginInvoke”

我在设计时尝试避免使用 MethodInvoker

bool isInDesignMode = LicenseManager.UsageMode == LicenseUsageMode.Designtime || Debugger.IsAttached == true;

但是,我仍然在设计时收到此错误。

如何避免在设计时运行 BeginInvode 方法?

4

0 回答 0