2011-07-12 14 views
3

私は、3つのサブタブを持つウィンドウマップと呼ばれるウィンドウフォームにタブを持っています。最初のサブタブは呼び出されたマップで、読み込みとスキップのボタンがあります。ロードボタンをクリックして、Waferサブタブに焦点を当てようとしています。これは私が使用しようとしている次のコードです。タブに焦点を合わせる

Private Sub Load_Wafer_Layout_Map_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Load_Wafer_Layout_Map.Click 
    Wafer_Info.Enabled = True 
    Wafer_Info.Show() 
End Sub 

Wafer_Info.Enabled = Trueのは、ウエハ上のタブコントロールのすべてを有効にし、ボタンがクリックされたときに正しく動作するために使用されます。 .Focus()と.Show()を使用して次のタブにフォーカスを移そうとしましたが、切り替えることに幸運はありません。誰でも何か提案がありますか?

答えて

3

を私のために働いたコードは、Tab_WaferMap.SelectTab(1)です。 Tab_WaferMapは私のメインタブで、1は表示したいサブタブのインデックスです

6

ちょうどそれを設定します。

tabControl.SelectedTab = yourTab 

]タブでは、ちょうどあなたが参照しようとしているタブに名前を付けることを確認、タブページを制御します。また、MSDNTabControl.SelectedTab

+0

「非共有メンバーへの参照にはオブジェクト参照が必要です」というメッセージが表示されました。 – James

+0

@James、それはそのページに記載されていますサポート対象:4,3.5 SP1およびWindows 7 –

+0

解決策を得ることができませんでしたが、別の方法で解決する方法を見つけました。 – James

0

を参照してくださいあなたはまた、(ゼロベース)の数値使用して、タブ(およびサブタブ)のSelected Indexを設定することができます。

TabParent.SelectedIndex = 3 
TabSub.SelectedIndex=2 
3

私は自分自身のフォーカスの問題を解決する方法を探していました。私は多くのTabPagesでTabControlを持っています。オーバーフローしているコンテンツのため、各タブページは自動スクロールに設定されています。私が遭遇した問題は、TabPageにフォーカスがない場合、マウスのスクロールホイールが機能しなくなることでした。各タブのクリックごとにイベントがないので、各タブページにチャレンジを設定します。難しいことではありませんでしたが、それほど難しいことではありませんでした。そこで、ここに私のコードがあります(オートスクロールがtrueの場合)。フォームのロードセットに

は、メインのTabPageにフォーカス:

Private Sub frmParent_Load(sender As Object, e As System.EventArgs) Handles Me.Load 
    TabControl1.TabPages(0).Focus() 
End Sub 

セットは、インデックスを取得フォーカスを設定することにより、現在のTabPageに焦点を当てます。 これは、TabControl1.SelectedIndexChangeイベントによってトリガーされます。

Private Sub TabControl1_SelectedIndexChanged(sender As Object, e As System.EventArgs) Handles TabControl1.SelectedIndexChanged 
    Dim intTabIndex As Integer = TabControl1.SelectedIndex 
    TabControl1.TabPages(intTabIndex).Focus() 
End Sub 

私は誰かがこれを役に立つと願っています。それは私のために非常に便利でした。

Joshua