syncfusion-winforms-record-navigation-control について
このスキルは、Windows Forms アプリで Syncfusion の GridRecordNavigationControl を実装する方法を説明します。グリッド画面にレコード移動機能を加える開発者向けに、ナビゲーション、スタイル、GridGroupingControl との連携を扱います。
主な機能
- 01先頭・末尾・前・次のレコード移動
- 02現在位置と総レコード数の表示
- 03Default、Metro、Office2016 のスタイル
- 04ラベルとテキストのローカライズ
- 05GridGroupingControl との連携
活用シーン
- 01データベースビューアでのレコード閲覧
- 02エディターでのレコード移動
- 03大規模なグリッドデータの閲覧
- 04グループ化されたレコードの閲覧
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ syncfusion/ winforms-ui-components-skills --skill syncfusion-winforms-record-navigation-controlインストール後、Claude Code で/syncfusion-winforms-record-navigation-controlを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/getting-started.mdgridgrouping-integration.mdnavigation-methods.mdstyling.md詳細
Grid レコードナビゲーションコントロールの実装
Windows Forms アプリケーションで Syncfusion GridRecordNavigationControl を実装するための包括的なガイドです。このコントロールは、グリッドコントロール内のレコードを移動するための、Microsoft Access のようなナビゲーションバーを提供します。
このスキルを使用する場面
次のような場合は、GridRecordNavigationControl を使用します。
- グリッドレコードを参照するためのナビゲーションコントロールを追加する
- Microsoft Access のようなレコードナビゲーション UI を実装する
- 最初、最後、前、次へのナビゲーション機能を提供する
- GridControl または GridDataBoundGrid の大規模なデータセットを移動する
- GridGroupingControl とナビゲーションバーを統合する
- 直感的なレコード参照機能を備えたデータ駆動型アプリケーションを作成する
- レコード数と現在の位置をユーザーに表示する
コンポーネントの概要
GridRecordNavigationControl を使うと、グリッドの下部に配置されたナビゲーションバーからレコード間を移動できます。Microsoft Access でおなじみのスタイルのインターフェイスを備え、最初、最後、前、次のレコードへの移動を標準でサポートしています。
主な機能:
- 組み込みのナビゲーションメソッド - MoveFirst、MoveLast、MoveNext、MovePrevious
- ローカライズのサポート - ナビゲーションバーのテキストとラベルをカスタマイズ
- ビジュアルスタイル - Default、Metro、Office2016 のテーマ
- GridGroupingControl との統合 - ShowNavigationBar プロパティによる簡単な統合
- プログラムからの制御 - コードを使ってレコードを動的に移動
- レコードの表示 - 現在のレコードとレコード総数を表示
ドキュメントとナビゲーションガイド
はじめにとセットアップ
📄 参照: references/getting-started.md
- アセンブリの配置要件(Syncfusion.Grid.Windows、Syncfusion.Shared.Base)
- Visual Studio デザイナーを使った GridRecordNavigationControl の作成
- コードを使った GridRecordNavigationControl の作成
- 子グリッドコントロール(GridControl、GridDataBoundGrid)の追加
- 基本的な設定と初期化
- C# および VB.NET による完全なセットアップ例
ナビゲーションメソッドと機能
📄 参照: references/navigation-methods.md
- MoveFirst() - 最初のレコードに移動
- MoveLast() - 最後のレコードに移動
- MoveNext() - 次のレコードに移動
- MovePrevious() - 前のレコードに移動
- 大規模なデータセットでの使用例
- プログラムによるナビゲーションの例
- コードサンプル付きのナビゲーションメソッドリファレンス
スタイルとテーマ
📄 参照: references/styling.md
- ビジュアルスタイル:Default、Metro、Office2016
- Style プロパティの設定
- Office2016 の配色(Black、Colorful、DarkGray、White)
- GridOfficeScrollBars との統合
- スクリーンショット付きのテーマ例
- 外観のカスタマイズ
GridGroupingControl との統合
📄 参照: references/gridgrouping-integration.md
- GridGroupingControl の ShowNavigationBar プロパティ
- RecordNavigationBar プロパティへのアクセス
- 組み込みのナビゲーションサポートの統合
- グループ化されたデータでナビゲーションバーを有効化
- 完全な統合例
- グループ化されたグリッドでのレコードナビゲーション
クイックスタートの例
デザイナーから(推奨)
// Step 1: Drag GridRecordNavigationControl from toolbox to form
// Step 2: Position and size the control
// Step 3: Drag GridDataBoundGrid into the GridRecordNavigationControl
// Step 4: Set GridDataBoundGrid.DataSource property
// Designer generates this code:
this.recordNavigationControl1 = new Syncfusion.Windows.Forms.Grid.GridRecordNavigationControl();
this.gridDataBoundGrid1 = new Syncfusion.Windows.Forms.Grid.GridDataBoundGrid();
this.recordNavigationControl1.Controls.Add(this.gridDataBoundGrid1);
this.gridDataBoundGrid1.DataSource = myDataSource;
コードから
using Syncfusion.Windows.Forms.Grid;
using System.Drawing;
// Create GridRecordNavigationControl
this.recordNavigationControl1 = new GridRecordNavigationControl();
this.recordNavigationControl1.Location = new Point(32, 48);
this.recordNavigationControl1.Size = new Size(520, 256);
this.recordNavigationControl1.MaxRecord = 1000;
this.recordNavigationControl1.MaxLabel = "of 1000";
this.recordNavigationControl1.NavigationBarWidth = 237;
// Create child grid
this.gridControl1 = new GridControl();
this.gridControl1.RowCount = 1000;
this.gridControl1.ColCount = 16;
this.gridControl1.NumberedRowHeaders = false;
// Add grid to navigation control
this.recordNavigationControl1.Controls.Add(this.gridControl1);
// Add to form
this.Controls.Add(this.recordNavigationControl1);
よく使われるパターン
パターン 1:ナビゲーション付きのデータバインドグリッド
using Syncfusion.Windows.Forms.Grid;
using System.Data;
// Create navigation control
var navControl = new GridRecordNavigationControl();
navControl.Location = new Point(20, 20);
navControl.Size = new Size(600, 400);
// Create data-bound grid
var dataGrid = new GridDataBoundGrid();
dataGrid.DataSource = GetDataTable(); // Your data source
// Add grid to navigation control
navControl.Controls.Add(dataGrid);
// Configure navigation
navControl.MaxRecord = dataGrid.Model.RowCount;
navControl.MaxLabel = $"of {dataGrid.Model.RowCount}";
this.Controls.Add(navControl);
パターン 2:プログラムによるナビゲーション
private RecordNavigationControl recordNavigationControl;
// Navigate to first record
this.recordNavigationControl.NavigationBar.MoveFirst();
// Navigate to last record
this.recordNavigationControl.NavigationBar.MoveLast();
// Navigate to next record
this.recordNavigationControl.NavigationBar.MoveNext();
// Navigate to previous record
this.recordNavigationControl.NavigationBar.MovePrevious();
パターン 3:スタイルを設定したナビゲーションコントロール
using Syncfusion.Windows.Forms;
// Apply Metro theme
this.recordNavigationControl1.Style = Appearance.Metro;
// Apply Office2016 theme with Black color scheme
this.recordNavigationControl1.Style = Appearance.Office2016;
this.recordNavigationControl1.GridOfficeScrollBars = OfficeScrollBars.Office2016;
this.recordNavigationControl1.Office2016ScrollBarsColorScheme =
ScrollBarOffice2016ColorScheme.Black;
パターン 4:ナビゲーション付きの GridGroupingControl
using Syncfusion.Windows.Forms.Grid.Grouping;
// Enable navigation bar on GridGroupingControl
this.gridGroupingControl1.ShowNavigationBar = true;
// Access navigation methods through RecordNavigationBar property
this.gridGroupingControl1.RecordNavigationBar.MoveFirst();
this.gridGroupingControl1.RecordNavigationBar.MoveNext();
主なプロパティ
| プロパティ | 型 | 説明 |
|---|---|---|
MaxRecord | int | データセット内のレコード総数 |
MaxLabel | string | レコード総数を示すラベル(例:「of 1000」) |
NavigationBarWidth | int | ナビゲーションバーの幅(ピクセル単位) |
SplitBars | DynamicSplitBars | 分割バーの設定(None、Both、Horizontal、Vertical) |
Style | Appearance | 外観スタイル(Default、Metro、Office2016) |
Office2016ScrollBarsColorScheme | ScrollBarOffice2016ColorScheme | Office2016 の配色 |
GridOfficeScrollBars | OfficeScrollBars | Office のスクロールバーのスタイル |
ShowNavigationBar | bool | (GridGroupingControl)ナビゲーションバーを表示/非表示にします |
主なメソッド
| メソッド | 説明 |
|---|---|
MoveFirst() | 最初のレコードに移動します |
MoveLast() | 最後のレコードに移動します |
MoveNext() | 次のレコードに移動します |
MovePrevious() | 前のレコードに移動します |
一般的なユースケース
ユースケース 1:データベースビューアーアプリケーション
Microsoft Access のフォームのように、ユーザーがデータベースのレコードを一度に 1 件ずつ閲覧できるデータビューアーを作成します。
ユースケース 2:レコードエディター
データを編集しながらレコード間を移動でき、現在の位置が明確に分かるエディターインターフェイスを構築します。
ユースケース 3:大規模データセットのナビゲーション
すべてのレコードを一度に表示することなく、大規模なデータセット(1000 件以上)を効率よく移動できるようにします。
ユースケース 4:グループ化されたデータのナビゲーション
グループ構造を維持しながら、GridGroupingControl 内のグループ化されたレコードを移動します。
必要なアセンブリ
GridRecordNavigationControl を使用するには、次のアセンブリ参照を追加します。
- Syncfusion.Grid.Windows.dll - グリッドの主要機能とナビゲーションコントロール
- Syncfusion.Shared.Base.dll - 共通のスタイル、エディター、基本コンポーネント
実装チェックリスト
- 必要なアセンブリ参照を追加する
- GridRecordNavigationControl を作成する(デザイナーまたはコード)
- 子グリッドコントロール(GridControl または GridDataBoundGrid)を追加する
- MaxRecord プロパティと MaxLabel プロパティを設定する
- データバインドグリッドを使用する場合は、データソースを設定する
- ビジュアルスタイル/テーマを適用する(任意)
- ナビゲーションメソッド(最初、最後、次、前)をテストする
- カスタムナビゲーションイベントを処理する(任意)
ベストプラクティス
- まずデザイナーを使用:初期設定には Visual Studio デザイナーを使用します。正しい初期化コードが生成されます。
- 配置順序:デザイナーを使用する場合は、まずナビゲーションコントロールを配置し、次にグリッドをナビゲーションコントロール内に配置します(フォーム上ではありません)。
- MaxRecord の設定:正確なナビゲーションのため、MaxRecord プロパティは常にデータセットのサイズに合わせて設定します。
- MaxLabel の更新:データの変更に合わせて MaxLabel を同期させます。
- テーマの一貫性:アプリケーション内のすべての Syncfusion コントロールに同じビジュアルスタイルを適用します。
- アセンブリ参照:コントロールを使用する前に、必要な 2 つのアセンブリが両方とも参照されていることを確認します。
トラブルシューティング
ナビゲーションが機能しない場合:
- 子グリッドがナビゲーションコントロールの Controls コレクションに追加されていることを確認します
- MaxRecord が正しく設定されていることを確認します
- グリッドにデータソースまたは行が設定されていることを確認します
デザイナーの問題:
- グリッドコントロールはフォーム上ではなく、ナビゲーションコントロール内に配置します
- コントロールが正しく入れ子になっていない場合は、正しい順序で作り直します
スタイルが適用されない場合:
- Office2016 スタイルを使用する場合は、Office2016ScrollBarsColorScheme が設定されていることを確認します
- GridOfficeScrollBars が Style プロパティと一致していることを確認します