Skip to main content

syncfusion-winforms-grid-control

Implements Syncfusion Windows Forms GridControl with cell-oriented architecture, virtual data loading, and Excel-like features. Use this when working with spreadsheet-like grids, GridStyleInfo cell styling, grid formulas, or covered cell ranges. The skill covers QueryCellInfo events, PopulateValues, ChangeCells, grid selection, editing validation, and extensive cell customization capabilities.

Datos de origen

Repositorio
syncfusion/winforms-ui-components-skills
Última actividad en el origen
6 de julio de 2026 a las 07:19
Idioma detectado de SKILL.md
inglés
Estrellas
2
Forks
0

Opciones de instalación

De forma predeterminada está seleccionado el prompt que primero revisa el origen. Puedes cambiar a un comando directo o descargar una copia local.

Revisa los archivos de origen

Lee SKILL.md y los archivos complementarios que muestra SkillsMP antes de decidir si quieres instalarlo.

Explorador de archivos
13 archivos

Mostrando SKILL.md

SKILL.md
Instrucciones de origen · Vista previa de solo lectura
name
syncfusion-winforms-grid-control
description
Implements Syncfusion Windows Forms GridControl with cell-oriented architecture, virtual data loading, and Excel-like features. Use this when working with spreadsheet-like grids, GridStyleInfo cell styling, grid formulas, or covered cell ranges. The skill covers QueryCellInfo events, PopulateValues, ChangeCells, grid selection, editing validation, and extensive cell customization capabilities.
metadata
{"author":"Syncfusion Inc","version":"34.1.29"}
# 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](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](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](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](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](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](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](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](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](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](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](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](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 ```csharp 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 ```csharp gridControl1.Model.RowCount = 1000000; gridControl1.QueryCellInfo += (sender, e) => { e.Style.CellValue = GetData(e.RowIndex, e.ColIndex); }; ``` 📄 **Details:** [references/data-population.md](references/data-population.md) ### Pattern 2: Cell Styling ```csharp GridStyleInfo style = new GridStyleInfo { BackColor = Color.LightGreen }; gridControl1.ChangeCells(GridRangeInfo.Cells(5, 2, 8, 5), style); ``` 📄 **Details:** [references/cell-style-architecture.md](references/cell-style-architecture.md) ### Pattern 3: Formulas ```csharp gridControl1.Model.EnableFormulas = true; gridControl1[5, 1].CellValue = "=SUM(A1:A4)"; ``` 📄 **Details:** [references/formula-support.md](references/formula-support.md) ### Pattern 4: Cell Types ```csharp gridControl1[3, 2].CellType = GridCellTypeName.ComboBox; gridControl1[3, 2].ChoiceList = new string[] { "Option 1", "Option 2" }; ``` 📄 **Details:** [references/cell-types.md](references/cell-types.md) ### Pattern 5: Selection ```csharp gridControl1.AllowSelection = GridSelectionFlags.Any; gridControl1.SelectionChanged += (s, e) => { /* Handle selection */ }; ``` 📄 **Details:** [references/selection.md](references/selection.md) ## Key Properties ### Essential Properties | Property | Type | Description | |----------|------|-------------| | `RowCount` | int | Number of rows in the grid | | `ColCount` | int | Number of columns in the grid | | `Model[row, col]` | GridStyleInfo | Access cell style and properties | | `AllowSelection` | GridSelectionFlags | Enable/configure range selection | | `ListBoxSelectionMode` | SelectionMode | Enable/configure row selection | | `ReadOnly` | bool | Enable/disable editing for entire grid | | `ExcelLikeSelectionFrame` | bool | Show Excel-style selection frame | | `ExcelLikeCurrentCell` | bool | Highlight current cell like Excel | | `CoveredRanges` | GridRangeInfoList | Collection of covered cell ranges | ### GridStyleInfo Properties | Property | Type | Description | |----------|------|-------------| | `CellValue` | object | Value displayed in the cell | | `CellType` | string | Cell type (TextBox, ComboBox, etc.) | | `BackColor` | Color | Background color | | `TextColor` | Color | Text color | | `Font` | GridFontInfo | Font settings | | `ReadOnly` | bool | Enable/disable editing for cell | | `Format` | string | Display format string | | `HorizontalAlignment` | GridHorizontalAlignment | Text horizontal alignment | | `VerticalAlignment` | GridVerticalAlignment | Text 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.
Ver en GitHub