Trusted by the world’s leading companies
Overview
The WinForms DataGrid control is used to efficiently display and manipulate tabular data. Its rich feature set includes data binding, editing, sorting, filtering, grouping, and exporting to Excel/PDF file formats and more. It has also been optimized for working with millions of records as well as handling high frequency real-time updates.
High Performance

Instant loading
Load millions of records instantly.

Fast data processing
Data processing operations like sorting, filtering, grouping, summaries, and real-time updates are handled efficiently using PLINQ.

Export
Quickly export the data grid content to Excel or PDF file formats.
Data binding
The WinForms DataGrid has data-binding support to work with all popular data sources like SQL server, Oracle, DataTable, and IEnumerable, and data providers like LINQ to SQL, ADO.NET, Entity Framework, and WCF Data Service.

Seamless editing experience
Use different built-in column types such as ComboBox, DateTime, CheckBox, and more to edit cell values. Commit or rollback changes when the data object implements IEditableObject. Also add new records dynamically.

Widely used column types
The WinForms DataGrid control supports various column types. Users can display information and easily edit cell values using built-in intuitive editors such as TextBox, Numeric TextBox (Includes currency and percentage TextBoxes), DatePicker, and CheckBox.

Dropdown column types
Lookup data using the dropdown column type. The ComboBox editor is used to select an item from the dropdown.

Custom column type
WinForms DataGrid allows you to create your own custom columns to perform customized operations for your business application use cases. It is also possible to change the behavior of built-in column types.
Built-in data error indication and validation
Validate cells and display error information based on the validation types such as IDataErrorInfo, INotifyDataErrorInfo, Data Annotations. It is also possible to use cell, row, and custom validations.

Data operations

Sorting
Sort data based on one or more columns with multiple customization operations. You can also sort by caption summary values when the grid is grouped, or by writing custom logic.

Grouping
Group data by one or more columns either through mouse and touch in the group drop area or in code behind. You can also group data with custom logic.

Filter
Filter data using the built-in filter row or Excel-inspired filtering UI.

Summaries
Calculate and display sum, min, max, average, count, and custom aggregates in a table or group. Calculate summaries for selected records. Display summaries with different summary types, such as:
- Total or table summary
- Group summary
- Summary in group caption or header
- Custom summary
Data manipulation

Real time updates
The WinForms DataGrid control can handle high-frequency updates even under the most demanding scenarios where the data is sorted and grouped in real-time. Summaries are also calculated and displayed in real-time scenarios.

Built-in add new row
Add a new record in an underlying collection with a built-in row. It is also possible to place a newly added row at the top or bottom of a data grid.

Delete row
Delete selected records in a data grid by pressing the Delete key. You can also change it to another key instead of the default key.

Text search
Search and highlight text in a data grid and filter records based on the search text.

Selection
Select rows or cells for all keyboard navigations and mouse interactions like Excel.
Conditional formatting
Customize the appearance of cells, rows, or columns based on data.

Row and column customization

Row height
Users can adjust (auto fit) the row height based on the content of any column or certain columns to enhance readability. It is also possible to set the row height conditionally.

Freeze panes
Users can freeze rows and columns at the top, bottom, left, and right positions, similar to Excel. Horizontal and vertical scrolling can be performed, except on fixed columns and rows.

Unbound columns
Display unbound columns with custom data . This control supports an expression to calculate values based on other columns.

Unbound row
Display rows at the top and bottom of the grid with data that is not bound to a field or data source.

Cell merging
Dynamically merge data in the adjacent cells and present that data in a single cell. Merge data based on content by writing your own custom logic.

Stacked headers
Stacked headers (column header span) allow users to show unbound header rows. They span the stacked header columns across multiple rows and columns.

Master-details view (Hierarchical)
A master-details view (nested DataGridView) can be represented using nested grids that can be expanded and collapsed. Functions like editing, sorting, filtering, and grouping are supported. Unlimited levels of nested grid relationships are allowed.
Preview row
Display additional information of a row. View the preview row by expanding and collapsing the record as required. Custom view can also be shown by using custom drawing logic.


Paging
Manipulate data using the DataPager control to view records in multiple pages. DataPager also supports on-demand loading of data.
Appearance style
The appearance of a DataGrid and its inner elements, such as rows, cells, columns, headers, and summary rows, can be customized easily.


Column chooser
Users can change the visibility of columns at runtime using the customizable column chooser UI.
Context menu
The WinForms DataGrid control provides an entirely customized context menu to expose the functionality on the user interface. Users can create context menus for different rows such as record row, summary row, and group caption header in an efficient manner.


Excel, PDF, CSV export
Export a data grid to Excel and PDF file formats with the rich set of options.
Localization

Localization
Localize all the static default strings in the WinForms DataGrid to any desired language.

Right to left (RTL)
Displays text in the right-to-left (RTL) direction for users working with languages like Hebrew, Arabic, or Persian.
Column sizing
Adjust (auto fit) the column width based on the content of any column or column header. Fit all the columns within the viewport of a data grid.
Data virtualization
Create records on demand by automatically enabling data virtualization. Load millions of records of data instantly with virtualization enabled.
Clipboard operations
Perform clipboard operations such as cut, copy, and paste within a control and between other applications such as Notepad or Excel.
Serialization
Serialize the WinForms DataGrid settings to XML format and load back (deserialization) to the data grid using built-in serialization options.
UI Automation
The WinForms DataGrid control is compatible with Coded UI and UFT (formerly QTP) automation tools to automate applications.

WinForms DataGrid Code Example
Easily get started with the WinForms DataGrid using a few simple lines of C# code example as demonstrated below. Also explore our WinForms DataGrid Example that shows you how to render and configure the WinForms DataGrid.
using System.ComponentModel;
using System.Windows.Forms;
using System.Collections.ObjectModel;
using Syncfusion.WinForms.DataGrid;
namespace WindowsFormsApplication1
{
/// <summary>
/// Summary description for Form1.
/// </summary>
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
SfDataGrid sfDataGrid = new SfDataGrid();
this.Controls.Add(sfDataGrid);
sfDataGrid.DataSource = new OrderInfoCollection().Orders;
sfDataGrid.Location = new System.Drawing.Point(12, 12);
sfDataGrid.Size = new System.Drawing.Size(240, 150);
}
}
}using System.ComponentModel;
using System.Windows.Forms;
using System.Collections.ObjectModel;
using Syncfusion.WinForms.DataGrid;
namespace WindowsFormsApplication1
{
public class OrderInfo : INotifyPropertyChanged
{
decimal? orderID;
string customerId;
string country;
string customerName;
string shippingCity;
public decimal? OrderID
{
get { return orderID; }
set { orderID = value; this.OnPropertyChanged("OrderID"); }
}
public string CustomerID
{
get { return customerId; }
set { customerId = value; this.OnPropertyChanged("CustomerID"); }
}
public string CustomerName
{
get { return customerName; }
set { customerName = value; this.OnPropertyChanged("CustomerName"); }
}
public string Country
{
get { return country; }
set { country = value; this.OnPropertyChanged("Country"); }
}
public string ShipCity
{
get { return shippingCity; }
set { shippingCity = value; this.OnPropertyChanged("ShipCity"); }
}
public event PropertyChangedEventHandler PropertyChanged;
private void OnPropertyChanged(string propertyName)
{
if (PropertyChanged != null)
this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
}using System.ComponentModel;
using System.Windows.Forms;
using System.Collections.ObjectModel;
using Syncfusion.WinForms.DataGrid;
namespace WindowsFormsApplication1
{
public class OrderInfoCollection
{
private ObservableCollection<OrderInfo> orders;
public ObservableCollection<OrderInfo> Orders
{
get { return orders; }
set { orders = value; }
}
public OrderInfoCollection()
{
orders = new ObservableCollection<OrderInfo>();
orders.Add(new OrderInfo() { OrderID = 1001, CustomerName = "Thomas Hardy", Country = "Germany", CustomerID = "ALFKI", ShipCity = "Berlin" });
orders.Add(new OrderInfo() { OrderID = 1002, CustomerName = "Laurence Lebihan", Country = "Mexico", CustomerID = "ANATR", ShipCity = "Mexico" });
orders.Add(new OrderInfo() { OrderID = 1003, CustomerName = "Antonio Moreno", Country = "Mexico", CustomerID = "ANTON", ShipCity = "Mexico" });
orders.Add(new OrderInfo() { OrderID = 1004, CustomerName = "Thomas Hardy", Country = "UK", CustomerID = "AROUT", ShipCity = "London" });
orders.Add(new OrderInfo() { OrderID = 1005, CustomerName = "Christina Berglund", Country = "Sweden", CustomerID = "BERGS", ShipCity = "Lula" });
}
}
}Not sure how to create your first WinForms DataGrid? Our documentation can help.
I’d love to read it now125+ WINDOWS FORMS CONTROLS
Frequently Asked Questions
Why should you choose Syncfusion WinForms DataGrid?
The Syncfusion WinForms DataGrid provides the following features:
- Instantly load large amounts of data.
- Handle high-frequency updates even for demanding scenarios.
Use features such as seamless editing, grouping, sorting, filtering, summaries, and more out of the box.
- Do infinite or endless scrolling to load more rows continuously.
A rich UI interaction and keyboard navigation to interact with the software.
- Build complex, large-scale applications with a bunch of features with customization options.
- One of the best WinForms DataGrids in the market that offers feature-rich UI to interact with the software.
- Simple configuration and API.
- Touch friendly and responsive.
Extensive demos, documentation to learn quickly and get started with WinForms DataGrid.
Where can I find the Syncfusion WinForms DataGrid demo?
You can find our WinForms DataGrid demo on GitHub location.
Can I download and utilize the Syncfusion WinForms DataGrid for free?
No, this is a commercial product and requires a paid license. However, a free community license is also available for companies and individuals whose organizations have less than $1 million USD in annual gross revenue, 5 or fewer developers, and 10 or fewer total employees.
How do I get started with Syncfusion WinForms DataGrid?
A good place to start would be our comprehensive getting started documentation.
Our Customers Love Us
Awards
Greatness—it’s one thing to say you have it, but it means more when others recognize it. Syncfusion® is proud to hold the following industry awards.