FlexPivot for WinForms
テーマの適用
タスク別ヘルプ > テーマの適用

FlexPivot コントロールの全体的な外観も、C1ThemeController からテーマを適用することで、カスタマイズできます。開発者は、定義済みの組み込みテーマをコレクションから選択して、コントロールの全体的な外観をカスタマイズできます。

組み込みテーマを適用するには、次の手順を実行します。

  1. Visual Studio で新しい Windows フォームアプリケーションプロジェクトを作成します。
  2. ツールボックスから FlexPivotPage コントロールをフォームにドラッグアンドドロップします。
  3. C1ThemeController から組み込みテーマにアクセスするために、プロジェクトに C1.Win.C1Themes.4 の参照を追加します。
  4. スマートタグアイコン( )を1回クリックします。次の図のように、[FlexPivotPage のタスク]スマートタグパネルが表示されます。

    [FlexPivotPage のタスク]スマートタグパネル

  5. [親コンテナでドッキングを解除する]オプションを選択して、親コンテナ(フォーム)から FlexPivotPage コントロールをドッキング解除します。
  6. ツールボックスに移動し、フォームに標準的な Label コントロールを追加します。
  7. プロパティウィンドウで、ラベルコントロールのいくつかのプロパティを次のように設定します。
    • AutoSize = True
    • TabIndex = 0
    • Text = "テーマを適用する"
  8. ツールボックスから標準的な Combobox コントロールを追加し、いくつかのプロパティを次のように設定します。
    • Name = "cbTheme"
    • FormattingEnabled = True
    • DropDownStyle = DropDownList
    • TabIndex = 1
    • Text = "Apply Theme"

    デザインビューは、次の図のように表示されます。

  9. コードビューに切り替えて、次の Import 文を追加します。
    Imports C1.Win.C1Themes
    Imports System.Data.OleDb
    
    using C1.Win.C1Themes;
    using System.Data.OleDb;
    
  10. 次のコードを追加して、NWind_ja.mdb データベースファイルとの接続文字列を設定します。
    Private Shared Function GetConnectionString() As String
        Dim path As String = Environment.GetFolderPath(Environment.SpecialFolder.Personal) 
        + "\ComponentOne Samples\Common"
        Dim conn As String = "provider=microsoft.jet.oledb.4.0;data source={0}\nwind_ja.mdb;"
        Return String.Format(conn, path)
    End Function
    
    // 標準のnwind mdbの接続文字列を取得します。
    static string GetConnectionString()
    {
        string path = Environment.GetFolderPath(Environment.SpecialFolder.Personal) 
        + @"\ComponentOne Samples\Common";
        string conn = @"provider=microsoft.jet.oledb.4.0;data source={0}\Nwind_ja.mdb;";
        return string.Format(conn, path);
    }
    
  11. フォームのコンストラクタで次のコードを追加して、NWind_ja.mdb データベースファイルからデータを取得し、ビューを作成します。
    ' データを取得します。
    Dim da = New OleDbDataAdapter("Select * from Invoices", GetConnectionString())
    Dim dt = New DataTable("NorthWind Sales Data")
    da.Fill(dt)
    
    ' C1FlexPivotPageコントロールにデータを割り当てます。
    C1FlexPivotPage1.DataSource = dt
    
    Dim fp = C1FlexPivotPage1.PivotEngine
    fp.ValueFields.MaxItems = 3
    fp.BeginUpdate()
    fp.RowFields.Add("Country")
    fp.ColumnFields.Add("Product")
    fp.ValueFields.Add("Sales")
    fp.EndUpdate()
    
    // データを取得します。
    var da = new OleDbDataAdapter("Select * from Invoices", GetConnectionString());
    var dt = new DataTable("NorthWind Sales Data");
    da.Fill(dt);
    
    // C1FlexPivotPageコントロールにデータを割り当てます。
    c1FlexPivotPage1.DataSource = dt;
    
    var fp = c1FlexPivotPage1.PivotEngine;
    fp.ValueFields.MaxItems = 3;
    fp.BeginUpdate();
    fp.RowFields.Add("Country");
    fp.ColumnFields.Add("Product");
    fp.ValueFields.Add("Sales");
    fp.EndUpdate();
    
  12. フォームのコンストラクタに次のコードを追加して、Combobox コントロールの SelectedIndexChanged イベントをサブスクライブし、ドロップダウンリストから組み込みテーマが選択されたときにテーマをフォームに適用するためのロジックを実装します。
    For Each theme As String In C1ThemeController.GetThemes()
        cbTheme.Items.Add(theme)
    Next
    AddHandler cbTheme.SelectedIndexChanged, AddressOf cbTheme_SelectedIndexChanged
    
    cbTheme.SelectedIndexChanged += cbTheme_SelectedIndexChanged;
    foreach (string theme in C1ThemeController.GetThemes())
        cbTheme.Items.Add(theme);
    
  13. cbTheme.SelectedIndexChanged イベントに対して作成されたイベントハンドラに次のコードを追加します。
    Private Sub cbTheme_SelectedIndexChanged(sender As Object, e As EventArgs)
        Dim theme As C1Theme = C1ThemeController.GetThemeByName(cbTheme.Text, False)
        If theme IsNot Nothing Then
            C1ThemeController.ApplyThemeToObject(c1FlexPivotPage1, theme)
        End If
    End Sub
    
    private void cbTheme_SelectedIndexChanged(object sender, EventArgs e)
    {
        C1Theme theme = C1ThemeController.GetThemeByName(cbTheme.Text, false);
        if (theme != null)
            C1ThemeController.ApplyThemeToObject(c1FlexPivotPage1, theme);
    }
    
  14. [F5] キーを押してアプリケーションを実行し、ドロップダウンリストから定義済みのテーマ(たとえば、VisualStyleOffice2010Black)を選択します。

  15. 次の図のように、フォームにテーマが適用されます。