mcpField
S
syncfusion-winforms-grid-control

syncfusion-winforms-grid-control

github.com/syncfusionDevelopment280 installsUpdated 1w ago
Repository

About syncfusion-winforms-grid-control

A documentation skill for Syncfusion Windows Forms GridControl, aimed at developers building flexible, cell-oriented data interfaces. It covers virtual loading, cell customization, formulas, editing, selection, and export.

Key features

  1. 01Load large grids on demand
  2. 02Customize cells and cell types
  3. 03Edit and validate cell values
  4. 04Use formulas and covered ranges
  5. 05Select, freeze, and drag grid areas
  6. 06Export to common document formats

Use cases

  1. 01Build spreadsheet-style applications
  2. 02Show large datasets with virtual loading
  3. 03Create custom data-entry forms
  4. 04Display and export formatted reports

Install

Copy the command and run it in a terminal.

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

After installing, type/syncfusion-winforms-grid-controlin Claude Code to confirm it loaded.

Bundled files

References and scripts installed along with SKILL.md.

references/
cell-style-architecture.md
cell-types.md
covered-ranges.md
data-population.md
drag-and-drop.md
editing-validation.md
excel-like-features.md
exporting.md
formula-support.md
getting-started.md
scrolling-zooming.md
selection.md

Details

From the project README

Implementing Grid Controls

Complete guide for implementing Syncfusion® Windows Forms GridControl - a powerful cell-oriented grid that provides Excel-like functionality, virtual data loading, and extensive cell-level customization for .NET desktop applications.

When to Use This Skill

Use this skill when you need to:

  • Implement cell-oriented grids that contain their own data
  • Create virtual grids with on-demand data loading for large datasets
  • Customize cells individually with GridStyleInfo and styling architecture
  • Add Excel-like features (selection frames, formulas, copy/paste)
  • Populate grid data using loops, PopulateValues, or QueryCellInfo
  • Implement cell types (TextBox, ComboBox, CheckBox, Button, etc.)
  • Enable cell editing with validation and custom handlers
  • Support formulas with cell references and built-in functions
  • Create covered cells or merge cells
  • Implement drag and drop for columns and rows
  • Handle selections (range-based or row-based)
  • Export grid data to Excel, PDF, Word, CSV, or HTML
  • Freeze rows/columns for better navigation
  • Build spreadsheet-like interfaces in Windows Forms

GridControl Overview

The GridControl is a cell-oriented grid that maintains its own data and doesn't require binding to an external data source. It's designed for maximum flexibility and performance, supporting virtually unlimited rows and columns.

Key Capabilities:

  • Cell-level customization down to individual cells
  • Virtual mode for efficient handling of millions of rows
  • 15+ built-in cell types with extensibility
  • Excel-like formulas with cell references
  • Covered cells and merged cell functionality
  • Multiple selection modes (range and row-based)
  • Rich editing with validation
  • Drag and drop support
  • Export to multiple formats
  • Frozen rows and columns
  • Clipboard operations (copy/paste)
  • Touch support

Best Use Cases:

  • Custom data layouts that don't fit table structures
  • Spreadsheet-like applications
  • Virtual grids with on-demand data loading
  • Applications requiring cell-level control
  • Grids that need formula support
  • Complex cell types and custom renderers

Documentation and Navigation Guide

Getting Started

📄 Read: references/getting-started.md

  • Installation and assembly deployment
  • Adding GridControl through designer
  • Adding GridControl through code
  • Initial configuration and setup
  • Required assemblies and namespaces
  • Basic grid creation
Data Population

📄 Read: references/data-population.md

  • Setting RowCount and ColCount
  • Populating by looping through cells
  • Using PopulateValues method
  • Virtual grid with QueryCellInfo event
  • Data binding patterns
  • Performance considerations
Cell Styling Architecture

📄 Read: references/cell-style-architecture.md

  • GridStyleInfo object model
  • Modifying styles through designer
  • Modifying styles through code
  • Using ChangeCells method
  • GridRangeInfo for range operations
  • Appearance customization
  • Style inheritance and base styles
Cell Types

📄 Read: references/cell-types.md

  • Overview of 15+ cell types
  • TextBox and static text
  • ComboBox and dropdown lists
  • CheckBox and radio buttons
  • DateTimePicker and calendar
  • NumericUpDown and currency
  • Button and link cells
  • Image cells
  • Progress bar cells
  • Custom cell types
  • Cell type configuration
Editing and Validation

📄 Read: references/editing-validation.md

  • ReadOnly property (grid and cell level)
  • CurrentCellStartEditing event
  • CurrentCellEditingComplete event
  • Validation rules and handlers
  • Custom edit behavior
  • Preventing edits conditionally
  • Edit mode configuration
Selection

📄 Read: references/selection.md

  • Range selection with AllowSelection
  • Row selection with ListBoxSelectionMode
  • GridSelectionFlags enumeration
  • Single vs multiple selection
  • SelectionChanging event
  • SelectionChanged event
  • Programmatic selection
  • Getting selected ranges
Excel-Like Features

📄 Read: references/excel-like-features.md

  • Excel-like selection frame
  • 2016 vs 2003 selection styles
  • Excel-like current cell highlighting
  • Keyboard navigation (arrows, Tab, Enter)
  • Copy and paste support
  • Clipboard operations
  • Excel-like behaviors
  • Selection frame customization
Formula Support

📄 Read: references/formula-support.md

  • Enabling formula engine
  • Formula syntax and cell references
  • Built-in functions (SUM, AVERAGE, IF, etc.)
  • Creating formulas in cells
  • Formula calculation and dependencies
  • Error handling
  • Custom functions
  • Formula events
Covered Ranges

📄 Read: references/covered-ranges.md

  • Covering multiple cells
  • CoveredRanges collection
  • Adding and removing covered ranges
  • Covered cells vs merged cells
  • Visual appearance of covered cells
  • Cell value in covered ranges
  • Styling covered cells
Drag and Drop

📄 Read: references/drag-and-drop.md

  • Enabling column drag and drop
  • Row drag and drop support
  • Touch support for drag operations
  • Drag events and customization
  • Restricting drag operations
  • Visual feedback during drag
Scrolling and Zooming

📄 Read: references/scrolling-zooming.md

  • Scroll bar configuration
  • Frozen rows and columns
  • Zoom functionality
  • Scroll events
  • Smooth scrolling
  • Performance optimization for scrolling
  • Virtual scrolling
Exporting

📄 Read: references/exporting.md

  • Export to Excel (XLS, XLSX)
  • Export to PDF
  • Export to Word documents
  • Export to CSV format
  • Export to HTML
  • Export options and customization
  • Styling exported content
  • Range-based export

Quick Start Example

Basic GridControl Setup
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);
    }
}

Common Patterns

Pattern 1: Virtual Grid
gridControl1.Model.RowCount = 1000000;
gridControl1.QueryCellInfo += (sender, e) =>
{
    e.Style.CellValue = GetData(e.RowIndex, e.ColIndex);
};

📄 Details: references/data-population.md

Pattern 2: Cell Styling
GridStyleInfo style = new GridStyleInfo { BackColor = Color.LightGreen };
gridControl1.ChangeCells(GridRangeInfo.Cells(5, 2, 8, 5), style);

📄 Details: references/cell-style-architecture.md

Pattern 3: Formulas
gridControl1.Model.EnableFormulas = true;
gridControl1[5, 1].CellValue = "=SUM(A1:A4)";

📄 Details: references/formula-support.md

Pattern 4: Cell Types
gridControl1[3, 2].CellType = GridCellTypeName.ComboBox;
gridControl1[3, 2].ChoiceList = new string[] { "Option 1", "Option 2" };

📄 Details: references/cell-types.md

Pattern 5: Selection
gridControl1.AllowSelection = GridSelectionFlags.Any;
gridControl1.SelectionChanged += (s, e) => { /* Handle selection */ };

📄 Details: references/selection.md

Key Properties

Essential Properties
PropertyTypeDescription
RowCountintNumber of rows in the grid
ColCountintNumber of columns in the grid
Model[row, col]GridStyleInfoAccess cell style and properties
AllowSelectionGridSelectionFlagsEnable/configure range selection
ListBoxSelectionModeSelectionModeEnable/configure row selection
ReadOnlyboolEnable/disable editing for entire grid
ExcelLikeSelectionFrameboolShow Excel-style selection frame
ExcelLikeCurrentCellboolHighlight current cell like Excel
CoveredRangesGridRangeInfoListCollection of covered cell ranges
GridStyleInfo Properties
PropertyTypeDescription
CellValueobjectValue displayed in the cell
CellTypestringCell type (TextBox, ComboBox, etc.)
BackColorColorBackground color
TextColorColorText color
FontGridFontInfoFont settings
ReadOnlyboolEnable/disable editing for cell
FormatstringDisplay format string
HorizontalAlignmentGridHorizontalAlignmentText horizontal alignment
VerticalAlignmentGridVerticalAlignmentText vertical alignment

Common Use Cases

  • Spreadsheet Application - Excel-like interface with formulas and formatting
  • Data Entry Form - Custom forms with various cell types
  • Report Viewer - Formatted reports with merged cells and export
  • Virtual Data Grid - Millions of rows with on-demand loading
  • Dashboard Grid - Custom layouts with visual indicators
  • Configuration Editor - Property grids with specialized cell types

Troubleshooting

Performance Issues: Use virtual mode (QueryCellInfo), BeginUpdate/EndUpdate for batch operations
Selection Not Working: Check AllowSelection property, verify grid has focus
Formulas Not Calculating: Ensure Model.EnableFormulas = true, validate syntax
Cell Values Not Showing: Verify CellValue set, check for covered cells, validate row/column indices (1-based)

For detailed troubleshooting, see the relevant reference files in the Navigation Guide.

Comments

Markdown supported