繁体   English   中英

自定义控件事件处理程序问题

[英]Custom Control Event Handler Issue

所有,我都有一个使用单例模式调用的自定义用户控件。 可以显示或隐藏此控件,并更新UI(以提供显示/隐藏控件选项),我在控件构造函数中设置了事件处理程序。

this.VisibleChanged += new EventHandler(ResultsControl_VisibleChanged);

而事件处理程序是

void ResultsControl_VisibleChanged(object sender, EventArgs e)
{
    // Get reference to Show/Hide button.
    var showHideResults = ((SqlEditorForm)this.ParentForm).ShowHideResultsButton;
    if (instance != null)
        showHideResults.Enabled = true;

    // Change the status.
    showHideResults.Text = this.Visible ? 
        "&Hide Query Results" : 
        "&Show Query Results";
    showHideResults.Image = this.Visible ?
        Properties.Resources.HideResultsVS201224 :
        Properties.Resources.ShowResultsVS201224;
}

问题在于我获取对ShowHideResultsButton的引用的ShowHideResultsButton 我收到设计师发出的以下错误...

DesignerError

我在这里做错了什么?

谢谢你的时间。


编辑。 我似乎已经通过移动

this.VisibleChanged += new EventHandler(ResultsControl_VisibleChanged);

从构造函数到控件的Load事件。 因此,问题就变成了:这是有效的解决方案吗?

目前,在设计UserControl您没有对SqlEditorForm的引用。 这是ParentForm属性将成为SqlEditorForm只有当你把你的ResultsControlSqlEditorForm使用设计或代码,通过。 在此之前,IDE仅知道它的类型为Form。 你为什么不实现你ResultsControl_VisibleChanged内的事件处理程序SqlEditorForm

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM