syncfusion-winforms-tabbed-form について
Syncfusion SfTabbedForm で Windows Forms のタブ UI を構築するためのスキルです。タイトルバーのタブ、選択とナビゲーション、ドラッグによる並べ替え、カスタムコンテキストメニューを扱います。
主な機能
- 01タイトルバー内または下部にタブを配置
- 02タブ選択と変更イベント
- 03組み込みナビゲーションボタン
- 04ドラッグによるタブの並べ替え
- 05カスタマイズ可能なタブのコンテキストメニュー
- 06タブがあふれた際のスムーズなスクロール
活用シーン
- 01タブページで設定を整理
- 02複数の文書やレポートを表示
- 03データ入力フォームをセクションに分割
- 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.mdcustomization.mddrag-and-drop.mdgetting-started.mdtab-navigation.mdtab-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:コンテキストメニューが表示される前に発生します
一般的なユースケース
- マルチドキュメントインターフェイス:複数のドキュメントをタブで表示するアプリケーションを作成します
- 設定ダイアログ:設定を複数のタブページに整理します
- データ入力フォーム:複雑なフォームを論理的なタブセクションに分割します
- レポートビューアー:複数のレポートを別々のタブに表示します
- コードエディター:IDE スタイルのタブによるファイル編集を実装します
- ブラウザー風アプリケーション:Web ブラウザーのようなタブ管理を作成します
アセンブリ参照
Syncfusion.Tools.Windows および Syncfusion.Shared.Base アセンブリへの参照を追加するか、NuGet 経由でインストールします:
Install-Package Syncfusion.Tools.Windows
コメント
Markdown 対応