2012-03-23 2 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

3つの方法 - フォームデザイナから、フォームを選択し、プロパティのリストを通常表示するところでは、その上にちょっとした稲妻記号が表示されます。これはフォームのすべてのイベントを表示します。リスト内のフォームロードイベントを見つけて、ドロップダウンからProgramViwer_Loadを選択する必要があります。

それを行うための第二の方法は、プログラムである - どこか(多分コンストラクタ)あなたは何か、それを追加する必要があるだろう:ProgramViwer.Load += new EventHandler(ProgramViwer_Load);

デザイナーを使用して第三の方法(おそらく最速) - 作成新しいフォームは、デザインモードでそれの真ん中をダブルクリックします。 Form Loadイベントを作成し、フックしてイベントハンドラのコードに移動します。それから、あなたは2本のラインを追加するだけで、あなたは行くことができます!

+0

ありがとうございました!私はそれを知らなかった! – Jenix

+0

何らかの理由で、イベントエクスプローラで、読み込み中にドロップダウンオプションが表示されません。 –

+1

@DaveKellyあなたがすでに書いた互換性のあるすべてのイベントハンドラがドロップダウンリストに表示されます。まだ作成していないと思われます。この質問では、OPは既に1つを書いていました。この質問のコピーと貼り付けと修正、または自分で作成してください。 – Bridge

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); 
    } 
} 
関連する問題