簡體   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