タブコントロールの特定のタブページがアクティブかどうかを確認するイベントを作成しています。
重要なのは、タブコントロールのそのタブページが現在選択されているタブである場合にイベントをトリガーするということです。必要なものを提供してくれるコードはありますか?
タブコントロールの特定のタブページがアクティブかどうかを確認するイベントを作成しています。
重要なのは、タブコントロールのそのタブページが現在選択されているタブである場合にイベントをトリガーするということです。必要なものを提供してくれるコードはありますか?
Winformで外を見ていると仮定するとSelectedIndexChanged
、タブのイベントがあります
これで、特定のタブを確認してロジックを進めることができます
private void tab1_SelectedIndexChanged(object sender, EventArgs e)
{
if (tab1.SelectedTab == tab1.TabPages["tabname"])//your specific tabname
{
// your stuff
}
}
特定のタブページがタブコントロールの現在選択されているページであるかどうかを確認するのは簡単です。タブコントロールのSelectedTabプロパティを使用するだけです。
if (tabControl1.SelectedTab == someTabPage)
{
// Do stuff here...
}
これは、選択されているタブページ以外のイベントに基づいてコードが実行される場合に役立ちます(この場合、SelectedIndexChangedの方が適しています)。
たとえば、タイマーを使用してTCP / IP接続を介して定期的にポーリングするアプリケーションがありますが、不要なTCP / IPトラフィックを回避するために、現在選択されているタブページのGUIコントロールを更新するもののみをポーリングします。
.Net4では使用できます
if (tabControl1.Controls[5] == tabControl1.SelectedTab)
MessageBox.Show("Tab 5 Is Selected");
また
if ( tabpage5 == tabControl1.SelectedTab)
MessageBox.Show("Tab 5 Is Selected");
どういうわけか、上記は私にはうまくいきません。これは何をしたかです:
if (tabControl.SelectedTab.Name == "tabName" )
{
.. do stuff
}
ここで、tabControl.SelectedTab.Nameは、タブコントロール自体のページに割り当てられた名前属性です。
tabPage1.Enter
イベントを利用する方が便利
だと思います。
tabPage1.Enter += new System.EventHandler(tabPage1_Enter);
private void tabPage1_Enter(object sender, EventArgs e)
{
MessageBox.Show("you entered tabPage1");
}
これは、タブごとにロジックが異なる場合に、ネストされたif-elseステートメントを使用するよりも優れています。また、将来新しいタブが追加される可能性がある場合に適しています。
このイベントは、フォームが読み込まtabPage1
れ、デフォルトで開かれた場合に発生することに注意してください。
これも機能します。
if (tabControl.SelectedTab.Text == "tabText" )
{
.. do stuff
}