We use cookies to give you the best experience on our website. If you continue to browse, then you agree to our privacy policy and cookie policy. Image for the cookie policy date
Syncfusion Feedback

Trusted by the world’s leading companies

Syncfusion Trusted 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 illustration for winforms datagrid

Instant loading

Load millions of records instantly.

Fast data processing of winforms datagrid illustration

Fast data processing

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

Printing illustration of winforms datagrid

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.

Data binding illustration for winforms datagrid


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.

Different column types in winforms datagrid

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.

winforms datagrid shows combobox column type

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

winforms datagrid shows custom column type

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 validation in winforms datagridview


Data operations

Multicolumn sorting in winforms datagridview

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.

winforms datagrid shows columns grouping

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.

Excel-like filtering in winforms datagrid

Filter

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

winforms datagrid shows summary rows

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 in winforms datagrid

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 in winforms datagrid

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.

winforms datagrid delete row

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 searching in winforms datagrid

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


Selection in winforms datagrid

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.

Conditional formatting in winforms datagrid


Row and column customization

Auto fitted row height in winforms datagrid

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.

winforms datagrid shows frozen rows and columns

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.

winforms datagrid shows unbound column

Unbound columns

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

winforms datagrid shows unbound rows

Unbound row

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

winforms datagrid shows merged cells with images

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.

winforms datagrid shows stacked headers

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 of winforms datagrid

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.

Preview row support in winforms datagrid


paging support in winforms datagrid

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.

Styling in winforms datagrid


Column chooser is showing in winforms datagrid

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.

winforms datagrid shows context menu


Exporting to Excel and pdf of winforms datagrid illustration

Excel, PDF, CSV export

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


Localization

Localization of winforms datagrid

Localization

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

Right to Left mode of winforms datagrid

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.

UI automation illustration for winforms datagrid


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" });
        }
    }
}



95+ WINDOWS FORMS CONTROLS

Frequently Asked Questions

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.

You can find our WinForms DataGrid demo on GitHub location.

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.

A good place to start would be our comprehensive getting started documentation.

Our Customers Love Us

Having an excellent set of tools and a great support team, Syncfusion reduces customers’ development time.
Here are some of their experiences.

Rated by users across the globe

Transform your applications today by downloading our free evaluation version
Download Free Trial No credit card required.

Syncfusion Windows Forms Resources

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.

Up arrow icon