[英]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
。 我收到设计师发出的以下错误...
我在这里做错了什么?
谢谢你的时间。
编辑。 我似乎已经通过移动
this.VisibleChanged += new EventHandler(ResultsControl_VisibleChanged);
从构造函数到控件的Load事件。 因此,问题就变成了:这是有效的解决方案吗?
目前,在设计UserControl
您没有对SqlEditorForm
的引用。 这是ParentForm
属性将成为SqlEditorForm
只有当你把你的ResultsControl
上SqlEditorForm
使用设计或代码,通过。 在此之前,IDE仅知道它的类型为Form。 你为什么不实现你ResultsControl_VisibleChanged
内的事件处理程序SqlEditorForm
?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.