syncfusion-winforms-grid-control について
Syncfusion Windows Forms GridControl を使う開発者向けのガイドです。柔軟なセル単位のデータ画面を構築するため、仮想読み込み、セルのカスタマイズ、数式、編集、選択、エクスポートを扱います。
主な機能
- 01大規模グリッドのオンデマンド読み込み
- 02セルとセル型のカスタマイズ
- 03セル値の編集と検証
- 04数式とセル範囲の結合
- 05グリッド領域の選択、固定、ドラッグ
- 06一般的な文書形式へのエクスポート
活用シーン
- 01スプレッドシート型アプリの構築
- 02仮想読み込みによる大規模データ表示
- 03カスタム入力フォームの作成
- 04書式付きレポートの表示と出力
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ syncfusion/ winforms-ui-components-skills --skill syncfusion-winforms-grid-controlインストール後、Claude Code で/syncfusion-winforms-grid-controlを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/cell-style-architecture.mdcell-types.mdcovered-ranges.mddata-population.mddrag-and-drop.mdediting-validation.mdexcel-like-features.mdexporting.mdformula-support.mdgetting-started.mdscrolling-zooming.mdselection.md詳細
グリッドコントロールの実装
Syncfusion® Windows Forms GridControl を実装するための完全ガイドです。GridControl は、Excel のような機能、仮想データの読み込み、.NET デスクトップアプリケーション向けの広範なセル単位のカスタマイズを提供する、強力なセル指向グリッドです。
このスキルを使用する場面
次のような場合にこのスキルを使用します。
- 独自のデータを保持するセル指向グリッドを実装する
- 大規模なデータセットをオンデマンドで読み込む仮想グリッドを作成する
- GridStyleInfo とスタイルアーキテクチャを使用してセルを個別にカスタマイズする
- Excel のような機能(選択枠、数式、コピー/貼り付け)を追加する
- ループ、PopulateValues、または QueryCellInfo を使用してグリッドデータを設定する
- セルの種類(TextBox、ComboBox、CheckBox、Button など)を実装する
- 検証とカスタムハンドラーを使用したセル編集を有効にする
- セル参照と組み込み関数を使用した数式をサポートする
- カバーセルを作成する、またはセルを結合する
- 列と行のドラッグ&ドロップを実装する
- 選択を処理する(範囲ベースまたは行ベース)
- グリッドデータを Excel、PDF、Word、CSV、または HTML にエクスポートする
- 操作性を高めるために行/列を固定する
- Windows Forms でスプレッドシートのようなインターフェイスを構築する
GridControl の概要
GridControl は独自のデータを保持するセル指向グリッドで、外部データソースへのバインドは必要ありません。最大限の柔軟性とパフォーマンスを実現するよう設計されており、事実上、無制限の行と列をサポートします。
主な機能:
- 個々のセルに至るまでのセル単位のカスタマイズ
- 数百万行を効率的に処理する仮想モード
- 拡張性を備えた 15 種類以上の組み込みセルタイプ
- セル参照を使用した Excel のような数式
- カバーセルとセル結合機能
- 複数の選択モード(範囲ベースと行ベース)
- 検証機能を備えた豊富な編集機能
- ドラッグ&ドロップのサポート
- 複数の形式へのエクスポート
- 行と列の固定
- クリップボード操作(コピー/貼り付け)
- タッチ操作のサポート
主な用途:
- 表形式では表現できないカスタムデータレイアウト
- スプレッドシートのようなアプリケーション
- データをオンデマンドで読み込む仮想グリッド
- セル単位の制御が必要なアプリケーション
- 数式のサポートが必要なグリッド
- 複雑なセルタイプとカスタムレンダラー
ドキュメントとナビゲーションガイド
はじめに
📄 参照: references/getting-started.md
- インストールとアセンブリの配置
- デザイナーを使用した GridControl の追加
- コードを使用した GridControl の追加
- 初期設定とセットアップ
- 必要なアセンブリと名前空間
- 基本的なグリッドの作成
データの設定
📄 参照: references/data-population.md
- RowCount と ColCount の設定
- セルをループしてデータを設定する方法
- PopulateValues メソッドの使用
- QueryCellInfo イベントを使用した仮想グリッド
- データバインディングのパターン
- パフォーマンスに関する考慮事項
セルスタイルアーキテクチャ
📄 参照: references/cell-style-architecture.md
- GridStyleInfo オブジェクトモデル
- デザイナーを使用したスタイルの変更
- コードを使用したスタイルの変更
- ChangeCells メソッドの使用
- 範囲操作用の GridRangeInfo
- 外観のカスタマイズ
- スタイルの継承と基本スタイル
セルタイプ
📄 参照: references/cell-types.md
- 15 種類以上のセルタイプの概要
- TextBox と静的テキスト
- ComboBox とドロップダウンリスト
- CheckBox とラジオボタン
- DateTimePicker とカレンダー
- NumericUpDown と通貨
- Button セルとリンクセル
- 画像セル
- プログレスバーセル
- カスタムセルタイプ
- セルタイプの設定
編集と検証
📄 参照: references/editing-validation.md
- ReadOnly プロパティ(グリッドとセルのレベル)
- CurrentCellStartEditing イベント
- CurrentCellEditingComplete イベント
- 検証ルールとハンドラー
- カスタム編集動作
- 条件に応じた編集の禁止
- 編集モードの設定
選択
📄 読む: references/selection.md
- AllowSelection による範囲選択
- ListBoxSelectionMode による行選択
- GridSelectionFlags 列挙型
- 単一選択と複数選択
- SelectionChanging イベント
- SelectionChanged イベント
- プログラムによる選択
- 選択範囲の取得
Excel のような機能
📄 読む: references/excel-like-features.md
- Excel のような選択枠
- 2016 と 2003 の選択スタイル
- Excel のような現在のセルの強調表示
- キーボード操作(矢印キー、Tab、Enter)
- コピーと貼り付けのサポート
- クリップボード操作
- Excel のような動作
- 選択枠のカスタマイズ
数式のサポート
📄 読む: references/formula-support.md
- 数式エンジンの有効化
- 数式の構文とセル参照
- 組み込み関数(SUM、AVERAGE、IF など)
- セルでの数式の作成
- 数式の計算と依存関係
- エラー処理
- カスタム関数
- 数式イベント
カバー範囲
📄 読む: references/covered-ranges.md
- 複数のセルのカバー
- CoveredRanges コレクション
- カバー範囲の追加と削除
- カバーされたセルと結合されたセル
- カバーされたセルの外観
- カバー範囲内のセル値
- カバーされたセルのスタイル設定
ドラッグ&ドロップ
📄 読む: references/drag-and-drop.md
- 列のドラッグ&ドロップの有効化
- 行のドラッグ&ドロップのサポート
- ドラッグ操作のタッチサポート
- ドラッグイベントとカスタマイズ
- ドラッグ操作の制限
- ドラッグ中の視覚的なフィードバック
スクロールとズーム
📄 読む: references/scrolling-zooming.md
- スクロールバーの設定
- 行と列の固定
- ズーム機能
- スクロールイベント
- スムーズスクロール
- スクロールのパフォーマンス最適化
- 仮想スクロール
エクスポート
📄 読む: references/exporting.md
- Excel へのエクスポート(XLS、XLSX)
- PDF へのエクスポート
- Word ドキュメントへのエクスポート
- CSV 形式へのエクスポート
- HTML へのエクスポート
- エクスポートのオプションとカスタマイズ
- エクスポート内容のスタイル設定
- 範囲に基づくエクスポート
クイックスタートの例
基本的な GridControl の設定
using Syncfusion.Windows.Forms.Grid;
using System.Drawing;
using System.Windows.Forms;
public partial class Form1 : Form
{
private GridControl gridControl1;
public Form1()
{
InitializeComponent();
InitializeGrid();
}
private void InitializeGrid()
{
// Create and configure GridControl
gridControl1 = new GridControl();
gridControl1.Size = new Size(800, 600);
gridControl1.Dock = DockStyle.Fill;
// Set dimensions
gridControl1.RowCount = 50;
gridControl1.ColCount = 10;
// Populate with data
for (int row = 1; row <= gridControl1.RowCount; row++)
{
for (int col = 1; col <= gridControl1.ColCount; col++)
{
gridControl1[row, col].CellValue = $"R{row}C{col}";
}
}
// Style header row
GridStyleInfo headerStyle = new GridStyleInfo();
headerStyle.BackColor = Color.DarkBlue;
headerStyle.TextColor = Color.White;
headerStyle.Font.Bold = true;
gridControl1.ChangeCells(GridRangeInfo.Row(1), headerStyle);
// Enable Excel-like features
gridControl1.ExcelLikeSelectionFrame = true;
gridControl1.ExcelLikeCurrentCell = true;
gridControl1.AllowSelection = GridSelectionFlags.Any;
// Add to form
this.Controls.Add(gridControl1);
}
}
よく使われるパターン
パターン 1:仮想グリッド
gridControl1.Model.RowCount = 1000000;
gridControl1.QueryCellInfo += (sender, e) =>
{
e.Style.CellValue = GetData(e.RowIndex, e.ColIndex);
};
📄 詳細: references/data-population.md
パターン 2:セルのスタイル設定
GridStyleInfo style = new GridStyleInfo { BackColor = Color.LightGreen };
gridControl1.ChangeCells(GridRangeInfo.Cells(5, 2, 8, 5), style);
📄 詳細: references/cell-style-architecture.md
パターン 3:数式
gridControl1.Model.EnableFormulas = true;
gridControl1[5, 1].CellValue = "=SUM(A1:A4)";
📄 詳細: references/formula-support.md
パターン 4:セルの種類
gridControl1[3, 2].CellType = GridCellTypeName.ComboBox;
gridControl1[3, 2].ChoiceList = new string[] { "Option 1", "Option 2" };
📄 詳細: references/cell-types.md
パターン 5:選択
gridControl1.AllowSelection = GridSelectionFlags.Any;
gridControl1.SelectionChanged += (s, e) => { /* Handle selection */ };
📄 詳細: references/selection.md
主要なプロパティ
必須プロパティ
| プロパティ | 型 | 説明 |
|---|---|---|
RowCount | int | グリッドの行数 |
ColCount | int | グリッドの列数 |
Model[row, col] | GridStyleInfo | セルのスタイルとプロパティにアクセスします |
AllowSelection | GridSelectionFlags | 範囲選択を有効化/設定します |
ListBoxSelectionMode | SelectionMode | 行選択を有効化/設定します |
ReadOnly | bool | グリッド全体の編集を有効化/無効化します |
ExcelLikeSelectionFrame | bool | Excel のような選択枠を表示します |
ExcelLikeCurrentCell | bool | Excel のように現在のセルを強調表示します |
CoveredRanges | GridRangeInfoList | カバーされたセル範囲のコレクション |
GridStyleInfo のプロパティ
| プロパティ | 型 | 説明 |
|---|---|---|
CellValue | object | セルに表示される値 |
CellType | string | セルの種類(TextBox、ComboBox など) |
BackColor | Color | 背景色 |
TextColor | Color | テキストの色 |
Font | GridFontInfo | フォント設定 |
ReadOnly | bool | セルの編集を有効または無効にします |
Format | string | 表示形式の文字列 |
HorizontalAlignment | GridHorizontalAlignment | テキストの水平方向の配置 |
VerticalAlignment | GridVerticalAlignment | テキストの垂直方向の配置 |
一般的なユースケース
- スプレッドシートアプリケーション - 数式や書式設定に対応した Excel のようなインターフェース
- データ入力フォーム - さまざまなセルの種類に対応したカスタムフォーム
- レポートビューアー - セル結合やエクスポートに対応した書式設定済みレポート
- 仮想データグリッド - 必要に応じた読み込みにより、数百万行に対応
- ダッシュボードグリッド - 視覚的なインジケーターを備えたカスタムレイアウト
- 設定エディター - 専用のセルの種類を備えたプロパティグリッド
トラブルシューティング
パフォーマンスの問題: 仮想モード(QueryCellInfo)を使用し、一括操作には BeginUpdate/EndUpdate を使用してください
選択が機能しない場合: AllowSelection プロパティを確認し、グリッドにフォーカスがあることを確認してください
数式が計算されない場合: Model.EnableFormulas = true であることを確認し、構文を検証してください
セルの値が表示されない場合: CellValue が設定されていることを確認し、対象セルを覆うセルの有無を確認して、行番号と列番号(1 始まり)を検証してください
詳細なトラブルシューティングについては、Navigation Guide の該当するリファレンスファイルを参照してください。