2012-04-14 15 views
0

私はform0form1という2つのフォームを持っています。 form0には3ページのタブコントロールがあります。 (tagpage1tabpage2tabpage3別のフォームを閉じるときに `タブページに`フォーカスする方法

私はform1が閉じるときにtabpage2が集中することにしたいです。だから基本的に、私はどのように他のフォームのタブコントロールのタブページの状態を制御するのですか?

ご協力いただきありがとうございます。

答えて

0

は閉じてForm1の火災で、このイベントではなく、フォーム で名前空間レベルでの静的なイベントを定義し、それが働いていないんだ必要タブ

+0

ペストのような静的イベントを避けてください。イベントが明示的に登録解除されていなくても、メモリリークが発生します。このイベントはフォームオブジェクトへの参照を永遠に保持するためです。それはガベージコレクターによって修正することはできません、あなたはイベントを静的にしました。 –

1

これは、イベントハンドラが行うことです。フォームのFormClosedイベントのハンドラを記述する必要があります。

private void button1_Click(object sender, EventArgs e) { 
     var frm = new form1(); 
     frm.FormClosed += new FormClosedEventHandler(frm_FormClosed); 
     frm.Show(); 
    } 

    void frm_FormClosed(object sender, FormClosedEventArgs e) { 
     tabControl1.SelectedTab = tabPage2; 
    } 

以上のコンパクト:これと同様に、これは今form0の完全実装の詳細であることの大きな利点で

 var frm = new form1(); 
     frm.FormClosed += delegate { tabControl1.SelectedTab = tabPage2; }; 
     frm.Show(); 

、特別なコードやform0の知識は、Form1クラスに必要とされません。

+0

を選択するために、Form2の上で扱います! 'form1'では、' form0'に 'tabControl'を呼びません。 –

+0

@DuyKhanhこのコードはform1ではなくform0です。 Hansがbutton1_clickの中に提示したコードは、form1を開いた場所に移動する必要があります。 – Steve

+0

それは答えにむしろ重要なコメントです:) –

関連する問題