mcpField
S
syncfusion-winforms-tabbed-form

syncfusion-winforms-tabbed-form

github.com/syncfusionデザイン・UI257 回インストール1 週間前に更新
リポジトリ

syncfusion-winforms-tabbed-form について

Syncfusion SfTabbedForm で Windows Forms のタブ UI を構築するためのスキルです。タイトルバーのタブ、選択とナビゲーション、ドラッグによる並べ替え、カスタムコンテキストメニューを扱います。

主な機能

  1. 01タイトルバー内または下部にタブを配置
  2. 02タブ選択と変更イベント
  3. 03組み込みナビゲーションボタン
  4. 04ドラッグによるタブの並べ替え
  5. 05カスタマイズ可能なタブのコンテキストメニュー
  6. 06タブがあふれた際のスムーズなスクロール

活用シーン

  1. 01タブページで設定を整理
  2. 02複数の文書やレポートを表示
  3. 03データ入力フォームをセクションに分割
  4. 04ブラウザー風のタブ管理を構築

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/syncfusion/winforms-ui-components-skills --skill syncfusion-winforms-tabbed-form

インストール後、Claude Code で/syncfusion-winforms-tabbed-formを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

references/
context-menu.md
customization.md
drag-and-drop.md
getting-started.md
tab-navigation.md
tab-selection.md

詳細

Syncfusion Windows Forms タブ付きフォームの実装

Syncfusion のタブ付きフォーム(SfTabbedForm)は、Windows Forms アプリケーション向けにタブ付きのユーザーインターフェイスを提供します。任意の数のタブを追加でき、各タブには任意の数のコントロールを配置できます。タブはフォームのタイトルバー内に読み込むことも、タイトルバーの下に表示することもできます。

このスキルを使用する場面

次のような場合に、このスキルを使用してください。

  • Windows Forms アプリケーションでタブ付きのユーザーインターフェイスを作成する
  • 標準フォームをタイトルバーと統合されたタブ付きフォームに変換する
  • マルチドキュメントインターフェイス(MDI)の代替手段を実装する
  • タブの管理機能(タブの追加、閉じる、並べ替え)を追加する
  • タブの選択とプログラムによるナビゲーションを処理する
  • ドラッグアンドドロップによるタブの並べ替えを有効にする
  • タブのコンテキストメニュー(Web ブラウザーのようなもの)をカスタマイズする

主な機能

  • 簡単なナビゲーション:組み込みのナビゲーションボタン(最初、最後、次へ、前へ、ドロップダウン)
  • タブ管理:閉じるボタンを使用したタブの終了、プログラムによるタブの制御
  • ドラッグアンドドロップ:ドラッグしてタブを並べ替えます
  • タイトルバーとの統合:タイトルバー内またはその下にタブを表示します
  • コンテキストメニュー:タブ上の右クリックメニューをカスタマイズできます
  • スムーズスクロール:タブが表示領域を超えたときにスムーズにスクロールします

ドキュメントとナビゲーションガイド

はじめに

📄 参照先: references/getting-started.md

  • アセンブリのデプロイと依存関係
  • 標準フォームを SfTabbedForm に変換する
  • TabbedFormControl をフォームに読み込む
  • コントロールにタブ(TabPageAdv)を追加する
  • タイトルバーとの統合(ExtendTabsToTitleBar)を構成する
  • 基本的なタブの設定と初期化
タブの選択

📄 参照先: references/tab-selection.md

  • プログラムによる選択(SelectedIndex、SelectedTab プロパティ)
  • SelectedIndexChanging イベント(キャンセルに対応)
  • SelectedIndexChanged イベント
  • イベント処理のパターン
  • タブ選択の制限
タブのナビゲーション

📄 参照先: references/tab-navigation.md

  • TabPrimitiveMode プロパティの構成
  • 組み込みのナビゲーションボタン(FirstTab、LastTab、NextTab、PreviousTab、DropDown)
  • TabPrimitiveClick イベントの処理
  • ナビゲーションコントロールのカスタマイズ
  • タブが表示領域を超える場合の処理
ドラッグアンドドロップ

📄 参照先: references/drag-and-drop.md

  • ドラッグアンドドロップを有効にする(AllowDraggingTabs プロパティ)
  • TabDragging イベントと TabDraggingEventArgs
  • TabDraggingAction の状態(DragStarting、DragDropping)
  • 特定のタブのドラッグをキャンセルする
  • 特定の位置へのタブの並べ替えを防止する
コンテキストメニュー

📄 参照先: references/context-menu.md

  • TabContextMenu プロパティ
  • ContextMenuStrip を使用したカスタムコンテキストメニューの作成
  • ContextMenuOpening イベントによる動的なメニューのカスタマイズ
  • ブラウザー風のコンテキストメニュー(閉じる、このタブ以外をすべて閉じる、右側のタブを閉じる)
  • メニュー項目の条件付き有効化/無効化
カスタマイズ

📄 参照先: references/customization.md

  • タイトルバーとの統合に使用する ExtendTabsToTitleBar プロパティ
  • タブの外観とスタイルのオプション
  • TabbedFormControl のプロパティと構成
  • タブヘッダーのカスタマイズ

クイックスタートの例

基本的なタブ付きフォームの設定
using Syncfusion.Windows.Forms.Tools;

public partial class Form1 : SfTabbedForm
{
    private SfTabbedFormControl tabbedFormControl;
    
    public Form1()
    {
        InitializeComponent();
        
        // Create and configure the tabbed form control
        tabbedFormControl = new SfTabbedFormControl();
        
        // Add tabs
        TabPageAdv tabPageAdv1 = new TabPageAdv();
        TabPageAdv tabPageAdv2 = new TabPageAdv();
        tabPageAdv1.Text = "Document1";
        tabPageAdv2.Text = "Document2";
        
        tabbedFormControl.Tabs.Add(tabPageAdv1);
        tabbedFormControl.Tabs.Add(tabPageAdv2);
        
        // Add control to form
        this.Controls.Add(tabbedFormControl);
        this.TabbedFormControl = tabbedFormControl;
    }
}
VB.NET の例
Imports Syncfusion.Windows.Forms.Tools

Partial Public Class Form1
    Inherits SfTabbedForm
    Private tabbedFormControl As SfTabbedFormControl
    
    Public Sub New()
        InitializeComponent()
        
        ' Create and configure the tabbed form control
        tabbedFormControl = New SfTabbedFormControl()
        
        ' Add tabs
        Dim tabPageAdv1 As New TabPageAdv()
        Dim tabPageAdv2 As New TabPageAdv()
        tabPageAdv1.Text = "Document1"
        tabPageAdv2.Text = "Document2"
        
        tabbedFormControl.Tabs.Add(tabPageAdv1)
        tabbedFormControl.Tabs.Add(tabPageAdv2)
        
        ' Add control to form
        Me.Controls.Add(tabbedFormControl)
        Me.TabbedFormControl = tabbedFormControl
    End Sub
End Class

よく使われるパターン

パターン 1:タイトルバーの下にタブを配置する
public Form1()
{
    InitializeComponent();
    
    // Disable extending tabs to title bar
    this.ExtendTabsToTitleBar = false;
    
    // Setup tabbed control as usual
    tabbedFormControl = new SfTabbedFormControl();
    // ... add tabs
}
パターン 2:ナビゲーションを使用してドラッグアンドドロップを有効にする
public Form1()
{
    InitializeComponent();
    
    tabbedFormControl = new SfTabbedFormControl();
    
    // Enable drag and drop
    tabbedFormControl.AllowDraggingTabs = true;
    
    // Add navigation buttons
    tabbedFormControl.TabPrimitiveMode = TabPrimitiveMode.DropDown | 
                                         TabPrimitiveMode.FirstTab | 
                                         TabPrimitiveMode.LastTab;
    
    // ... add tabs
}
パターン 3:プログラムによるタブの選択
// Select by index
this.tabbedFormControl.SelectedIndex = 1;

// Or select by tab reference
this.tabbedFormControl.SelectedTab = tabPageAdv2;
パターン 4:タブを閉じるオプション付きのコンテキストメニュー
public Form1()
{
    InitializeComponent();
    
    tabbedFormControl = new SfTabbedFormControl();
    
    // Setup context menu
    ContextMenuStrip tabContextMenu = new ContextMenuStrip();
    tabContextMenu.Items.Add("Close", null, OnCloseMenuClicked);
    tabContextMenu.Items.Add("Close all but this", null, OnCloseAllMenuClicked);
    
    tabbedFormControl.TabContextMenu = tabContextMenu;
    tabbedFormControl.ContextMenuOpening += TabbedFormControl_ContextMenuOpening;
    
    // ... add tabs
}

主なプロパティとイベント

主なプロパティ
  • TabbedFormControl:タブを含むメインコントロール
  • ExtendTabsToTitleBar:タイトルバーにタブを表示するかどうか(既定値:true)
  • SelectedIndex:選択したタブの 0 から始まるインデックス
  • SelectedTab:選択した TabPageAdv への参照
  • AllowDraggingTabs:タブのドラッグアンドドロップを有効/無効にする
  • TabPrimitiveMode:ナビゲーションボタンを構成する
  • TabContextMenu:タブ用のカスタムコンテキストメニュー
主要なイベント
  • SelectedIndexChanging:タブの選択が変更される前に発生します(キャンセル可能)
  • SelectedIndexChanged:タブの選択が変更された後に発生します
  • TabPrimitiveClick:ナビゲーションボタンがクリックされたときに発生します
  • TabDragging:タブのドラッグ操作中に発生します
  • ContextMenuOpening:コンテキストメニューが表示される前に発生します

一般的なユースケース

  1. マルチドキュメントインターフェイス:複数のドキュメントをタブで表示するアプリケーションを作成します
  2. 設定ダイアログ:設定を複数のタブページに整理します
  3. データ入力フォーム:複雑なフォームを論理的なタブセクションに分割します
  4. レポートビューアー:複数のレポートを別々のタブに表示します
  5. コードエディター:IDE スタイルのタブによるファイル編集を実装します
  6. ブラウザー風アプリケーション:Web ブラウザーのようなタブ管理を作成します

アセンブリ参照

Syncfusion.Tools.Windows および Syncfusion.Shared.Base アセンブリへの参照を追加するか、NuGet 経由でインストールします:

Install-Package Syncfusion.Tools.Windows

コメント