2012-03-23 39 views
16

我有一個Windows窗體窗體,我試圖在窗體加載時顯示一個用戶控件。不幸的是,它沒有顯示任何東西。我究竟做錯了什麼?請參閱下面的代碼:如何添加窗體加載事件(目前不工作)

AdministrationView wel = new AdministrationView(); 
public ProgramViwer() 
{ 
    InitializeComponent(); 
} 


private void ProgramViwer_Load(object sender, System.EventArgs e) 
{ 
    formPanel.Controls.Clear(); 
    formPanel.Controls.Add(wel); 
} 

請注意我說的加載事件基於我在這篇文章中讀到:

http://msdn.microsoft.com/en-us/library/system.windows.forms.form.load.aspx

回答

40

三種方法可以做到這一點 - 從表單設計器,選擇表單以及通常看到屬性列表的位置,在其上方應該有一個閃電符號 - 這會顯示錶單中的所有事件。在列表中找到表單加載事件,您應該可以從下拉列表中選擇ProgramViwer_Load

做的第二種方法是通過編程 - 地方(也許構造函數),你需要添加它,像:ProgramViwer.Load += new EventHandler(ProgramViwer_Load);

使用設計的第三種方法(可能是最快的) - 當你創建一個新形式,在設計模式下雙擊它的中間。它會爲您創建一個Form加載事件,並將其掛接到您的事件處理程序代碼中。然後,你可以添加你的兩條線,你很好走!

+0

謝謝你的第三個!我不知道! – Jenix 2016-03-29 21:37:54

+0

出於某種原因,在事件資源管理器中沒有下載選項。 – 2016-06-25 00:48:37

+1

@DaveKelly下拉列表將列出您已經編寫的所有兼容事件處理程序 - 我懷疑您還沒有創建一個。在這個問題上,OP已經寫了一個。複製並粘貼並修改這個問題中的一個,或者自己創建一個。 – Bridge 2016-06-27 07:46:16

14

你有一半的答案!現在您創建了事件處理函數,您需要將它掛接到窗體,以便在窗體加載時實際調用它。您可以通過以下步驟實現這一目標:

public class ProgramViwer : Form{ 
    public ProgramViwer() 
    { 
     InitializeComponent(); 
     Load += new EventHandler(ProgramViwer_Load); 
    } 
    private void ProgramViwer_Load(object sender, System.EventArgs e) 
    { 
     formPanel.Controls.Clear(); 
     formPanel.Controls.Add(wel); 
    } 
}