SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

Silverlight/WPFで使える逆引きTips集

Silverlight/WPFで使える逆引きTips集
――タブ機能

(7) TabControlとTabItemコントロール

  • X ポスト
  • このエントリーをはてなブックマークに追加

05.任意のタブを選択状態にする

 XAMLで任意のタブを選択状態にする場合は、TabItem要素IsSelected属性にTrueを指定します。

 また、コードから任意のタブを選択状態にする方法は

  • TabItemのIsSelectedプロパティにTrueを指定する方法
  • TabControlのItemsプロパティIsSelectedプロパティにTrueを指定する方法

 があります。

 下記は、任意のタブを選択状態にする例です。

任意のタブを選択状態にする例
任意のタブを選択状態にする例
XAMLの例
<TabControl Name="TabControl1">
    <TabItem Header="TabItem1" Name="TabItem1">
        <Grid />
    </TabItem>
    <TabItem Header="TabItem2" Name="TabItem2">
        <Grid />
    </TabItem>
    <TabItem Header="TabItem3" Name="TabItem3">
        <Grid />
    </TabItem>
    <!-- TabItem4 を選択状態にする -->
    <TabItem Header="TabItem4" Name="TabItem4" IsSelected="True">
        <Grid />
    </TabItem>
    <TabItem Header="TabItem5" Name="TabItem5">
        <Grid />
    </TabItem>
</TabControl>
VBの例
Private Sub Window_Loaded(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs) Handles MyBase.Loaded
    '4番目のタブを選択状態にする
    TabItem4.IsSelected = True

    ' または下記
    'DirectCast(TabControl1.Items(3), TabItem).IsSelected = True
End Sub
C#の例
private void Window_Loaded(object sender, RoutedEventArgs e)
{
    // 4番目のタブを選択状態にする
   tabItem4.IsSelected = true;

    // または下記
    //((TabItem)tabControl1.Items[3]).IsSelected = true;
}
ポイント

 タブを選択状態にするには、TabItemのIsSelectedプロパティにTrueを設定するか、TabControlのItemsプロパティのIsSelectedプロパティにTrueを設定する。

06.タブが選択されたことを知る

 タブが選択されたことを知るには、TabControlのSelectionChangedイベントを使用します。

 また「どのタブが選択されたのか」を知るには、TabControlのSlectedIndexプロパティを使用して、選択されたタブのインデックスを取得します。

 下記は、タブが選択されたことを知る例です。

 タブが選択されると、TabControlの下に配置されたTextBlockに「○番目のタブが選択されました」というメッセージを表示します。

タブが選択されたことを知る例
タブが選択されたことを知る例
XAMLの例
<StackPanel>
    <TabControl Name="TabControl1" Height="235">
        <TabItem Header="TabItem1" Name="TabItem1">
            <Grid />
        </TabItem>
        <TabItem Header="TabItem2" Name="TabItem2">
            <Grid />
        </TabItem>
        <TabItem Header="TabItem3" Name="TabItem3">
            <Grid />
        </TabItem>
    </TabControl>
    <TextBlock Name="TextBlock1" />
</StackPanel>
VBの例
'初期化処理
'イベントハンドラーの追加
Private Sub Window_Initialized(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Initialized
    'タブが選択されたことを知るイベントハンドラーの追加
    AddHandler TabControl1.SelectionChanged, AddressOf TabControl1_SelectionChanged
End Sub


' 選択されたタブの情報を表示する
Private Sub TabControl1_SelectionChanged(ByVal sender As System.Object, ByVal e As System.Windows.Controls.SelectionChangedEventArgs)
    '選択されたタブの番号を取得
    Dim selectedIndex As Integer = TabControl1.SelectedIndex + 1

    '選択されたタブの情報を表示
    TextBlock1.Text = selectedIndex.ToString() + "番目のタブが選択されました"
End Sub
C#の例
public Window6()
{
    InitializeComponent();

    // タブが選択されたことを知るイベントハンドラーの追加
    tabControl1.SelectionChanged += new SelectionChangedEventHandler(tabControl1_SelectionChanged);
}


/// 選択されたタブの情報を表示する
private void tabControl1_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
    // 選択されタブの番号を取得
    int selectedIndex = tabControl1.SelectedIndex + 1;

    // 選択された他部の情報を表示
    textBlock1.Text = selectedIndex.ToString() + "番目のタブが選択されました";
}
ポイント

 タブが選択されたことを知るにはSelectionChangedイベントを使用する。

 どのタブが選択されたかを知るにはSelectedIndexプロパティを使用する。

次のページ
07.タブの配置方法を設定する

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
Silverlight/WPFで使える逆引きTips集連載記事一覧

もっと読む

この記事の著者

HIRO(ヒロ)

HIRO's.NETのHIROです。とある半導体工場のSEです。VB.NET, C#, PowerShellによるプログラミングを楽しんでいます。最近はBlog でPowerShellについて書いています。2008/07/07にPowerShell from Japan!!というサイトを立ち上げまし...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/5704 2011/02/01 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング