2010-12-08 8 views
8

2つのユーザーコントロールを使用してC#でWindowsアプリケーションを作成しました。ユーザーコントロールの表示後にメソッドを呼び出す方法

フォームが読み込まれると、最初のユーザーコントロールが読み込まれ(表示されます)、次へをクリックすると2番目のユーザーコントロールが読み込まれます。

今度は、ユーザーコントロールが表示されたら、このユーザーコントロールのメソッドを呼び出すようにします。

私はそうすることができません。 Loadイベントからメソッドを呼び出すと、コントロールが表示される前に起動されます。

誰かが、コントロールが表示された後に、メソッドの呼び出しをどうやって行うべきかを教えてもらえますか?

+2

私はちょうど、他の日にこれを実行しようとしました。価値のあることについては、私はすぐに、私がそのようなイベントを探すように強制していたものが、私のデザインが間違っていたという指標であることをすぐに認識しました。ここで何をしようとしていますか? –

答えて

3

おそらくVisibleChangedイベントを使用します。例えば

userControl2.VisibleChanged += new EventHandler(this.UserControl2VisibleChanged); 

private void UserControl2VisibleChanged(object sender, EventArgs e) 
{ 
    if(userControl2.Visible) 
    { 
     CallMyMethodIWantToRunWhenUserControl2IsVisibleHere(); 
    } 
} 
+2

'VisibleChanged'は、質問者が探していることをしないかもしれません。 'UserControl'が最初にロードされたときに必ずしも上げられるとは限りません。その可視性は実際には変更されないからです。 (デフォルトでは、 'Visible'プロパティは「True」です。) –

+0

UserControlsが見えるようになったらメソッドを呼び出す例で答えが更新されました。 – SwDevMan81

+0

いつでもuserControl2.Visible = trueを使用できます。 initであなたのメソッドを起動します。:) – Pabuc

関連する問題