私はform0
とform1
という2つのフォームを持っています。 form0
には3ページのタブコントロールがあります。 (tagpage1
、tabpage2
とtabpage3
)別のフォームを閉じるときに `タブページに`フォーカスする方法
私はform1
が閉じるときにtabpage2
が集中することにしたいです。だから基本的に、私はどのように他のフォームのタブコントロールのタブページの状態を制御するのですか?
ご協力いただきありがとうございます。
私はform0
とform1
という2つのフォームを持っています。 form0
には3ページのタブコントロールがあります。 (tagpage1
、tabpage2
とtabpage3
)別のフォームを閉じるときに `タブページに`フォーカスする方法
私はform1
が閉じるときにtabpage2
が集中することにしたいです。だから基本的に、私はどのように他のフォームのタブコントロールのタブページの状態を制御するのですか?
ご協力いただきありがとうございます。
は閉じてForm1の火災で、このイベントではなく、フォーム で名前空間レベルでの静的なイベントを定義し、それが働いていないんだ必要タブ
これは、イベントハンドラが行うことです。フォームの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クラスに必要とされません。
を選択するために、Form2の上で扱います! 'form1'では、' form0'に 'tabControl'を呼びません。 –
@DuyKhanhこのコードはform1ではなくform0です。 Hansがbutton1_clickの中に提示したコードは、form1を開いた場所に移動する必要があります。 – Steve
それは答えにむしろ重要なコメントです:) –
ペストのような静的イベントを避けてください。イベントが明示的に登録解除されていなくても、メモリリークが発生します。このイベントはフォームオブジェクトへの参照を永遠に保持するためです。それはガベージコレクターによって修正することはできません、あなたはイベントを静的にしました。 –