# WinForms GridView Overview

**RadGridView** is a grid component developed on top of [Telerik Presentation Framework](https://www.telerik.com/products/winforms/documentation/telerik-presentation-framework/overview/overview) which provides a combination of performance, extensibility, and ease of use. Its flexible hierarchy model allows the use of different data providers and the creation of highly interactive interfaces for the display and management of large data without performance loss.

<CtaPanelOverview></CtaPanelOverview>

> caption Figure 1: RadGridView layout.

![Telerik UI for WinForms RadGridView layout showing the grid structure with rows, columns, grouping area, and data cells](https://www.telerik.com/products/winforms/documentation/assets/03e67d18c7ed58869c685f767a0a98b6/gridview-overview001.png)

## Key Features

* **Easily customizable appearance and theming mechanism**: RadGridView offers four flexible methods for customizing its appearance: Themes, the UI Editor (DesignTime), Events, and Conditional Formatting. Each method has its specific use case, although they may overlap, providing developers with multiple options to fine-tune the look and feel of the control. Themes allow for global styling changes, while the UI editor simplifies design-time adjustments. Events enable dynamic appearance changes during runtime, and Conditional Formatting applies specific styles based on cell values or conditions. [Explore four ways to customize RadGridView appearance](https://www.telerik.com/products/winforms/documentation/controls/gridview/styling-and-appearance/four-ways-to-customize-radgridview-appearance)

* **Outstanding Performance**: RadGridView delivers cell and row virtualization by utilizing container reuse and recycling, which further enhances grid performance and reduces memory footprint. [Learn about RadGridView UI virtualization](https://www.telerik.com/products/winforms/documentation/controls/gridview/fundamentals/ui-virtualization)

* **Binding to a wide set of binding sources**: RadGridView can be bound to various data source types as well can work in so-called Unbound mode, where the grid is not bound to any data and using the grid API.  [Bind RadGridView to data](https://www.telerik.com/products/winforms/documentation/controls/gridview/populating-with-data/databinding-radgridview)

* **Flexible Hierarchy Model**: RadGridView has an extremely flexible hierarchy model, which allows meaningful organization of complex data. [Bind RadGridView to hierarchical data](https://www.telerik.com/products/winforms/documentation/controls/gridview/hierarchical-grid/binding-to-hierarchical-data)

* **Self-Referencing Hierarchy**: Often tabular data defines a hierarchical relationship with itself. This approach is used to model tree-like structures that can be nested to arbitrary depths. RadGridView supports that scenario through its self-reference hierarchy feature that allows you to define a relation that points back to the same table. [Configure a self-referencing hierarchy](https://www.telerik.com/products/winforms/documentation/controls/gridview/hierarchical-grid/self-referencing-hierarchy)

* **Filtering**: The control has built-in filtering support out of the box. You can get this functionality by enabling it. [Enable RadGridView filtering](https://www.telerik.com/products/winforms/documentation/controls/gridview/features/filtering/basic-filtering)

* **Grouping**: The users can interactively organize their data in a way that suits best their needs with a single drag-and-drop action. Data can be grouped according to several criteria effectively creating a tree of groups with the leaf nodes holding the actual data records. [Group RadGridView data](https://www.telerik.com/products/winforms/documentation/controls/gridview/features/grouping/basic-grouping)

* **Sorting**: RadGridView has built-in sorting support out of the box. You get this functionality enabled by default. Just click on the header of the column you wish to have your data sorted by and you are ready.  [Sort RadGridView data](https://www.telerik.com/products/winforms/documentation/controls/gridview/features/sorting/basic-sorting)

* **Paging**: The data layer of RadGridView supports pagination, allowing large datasets to be broken into manageable pages for improved performance and user experience. Developers can easily configure and customize the paging behavior to suit specific application needs. [Configure RadGridView paging](https://www.telerik.com/products/winforms/documentation/controls/gridview/features/paging/overview)

* **Searching**: RadGridView control allows you to perform search operations on the displayed data. This built-in search functionality is available for both end users and developers. The search mechanism executes in a separate thread which leaves the UI responsive at all times. [Search data with the RadGridView search row](https://www.telerik.com/products/winforms/documentation/controls/gridview/visual-elements/rows/search-row)

* **Printing**: The control exposes printing support, which allows you to print the grid content. [Print RadGridView content](https://www.telerik.com/products/winforms/documentation/controls/gridview/features/printing-support/printing-support)

* **Summary rows and totals row with Aggregate Functions**: RadGridView allows the use of summary rows to display key information about the dataset, such as the first item, last item, and total count. These summary rows can be pinned at the top or bottom and are available for use in both flat grid views as well as in grouped or hierarchical layouts. [Add RadGridView summary rows](https://www.telerik.com/products/winforms/documentation/controls/gridview/visual-elements/rows/summary-rows)

* **Pinned (Frozen) columns**: RadGridView allows you to keep part of your data always visible putting the rest of it in context. [Pin and unpin RadGridView columns](https://www.telerik.com/products/winforms/documentation/controls/gridview/visual-elements/columns/pinning-and-unpinning-columns)

* **Pinned rows**: RadGridView provides a mechanism for pinning particular rows to the top of the control so that they do not participate in the vertical scrolling. A detailed explanation of this feature can be found in the [Pinned Rows](https://www.telerik.com/products/winforms/documentation/controls/gridview/visual-elements/rows/pinned-rows) article.

* **Row and column reordering**: RadGridView supports row reordering and it can be done by the user at runtime. The user just has to drag the desired row at the desired position between two other rows and drop it there. [Reorder RadGridView rows](https://www.telerik.com/products/winforms/documentation/controls/gridview/end-user-capabilities/reordering-rows)

* **Merged Cells**: As of **Q3 2024** we have introduced support for merged cells in RadGridView control. As a result, the serial cells with equal values can be merged vertically or horizontally. [Merge RadGridView cells](https://www.telerik.com/products/winforms/documentation/controls/gridview/features/merged-cells)

* **Column grouping and HTML table-like layouts**: You can customize the control visual appearance and behavior by using a view definition. You can customize the layout in three different view definitions: TableViewDefinition(default), ColumnGroupsViewDefinition, and HtmlViewDefinition. [Explore RadGridView view definitions](https://www.telerik.com/products/winforms/documentation/controls/gridview/view-definitions/overview)

* **In-place data editing with validation and error indication**: The control offers intuitive in-cell data editing, with a flexible API that allows developers to easily customize the built-in editors. It also supports seamless integration of data validation mechanisms, enabling developers to provide real-time error feedback for invalid inputs. [Explore RadGridView editors](https://www.telerik.com/products/winforms/documentation/controls/gridview/features/editing/editors/editors)

* **Selection and navigation**: The control supports single and multiple record selection that can be manipulated both with the mouse and with the keyboard. [Configure RadGridView selection](https://www.telerik.com/products/winforms/documentation/controls/gridview/features/selection/basic-selection)

* **Exporting data in different file formats**: RadGridView provides built-in methods for exporting its data to various formats. [Export RadGridView data](https://www.telerik.com/products/winforms/documentation/controls/gridview/features/exporting-data/overview)

* **Localization and right-to-left support**: The control exposes a localization mechanism to display control text and messages in a specific language. [Localize RadGridView text and messages](https://www.telerik.com/products/winforms/documentation/controls/gridview/localization/localization). Apart from that, you can present the content of your grid instance in a right-to-left direction. [Configure RadGridView right-to-left support](https://www.telerik.com/products/winforms/documentation/controls/gridview/localization/right-to-left-support)

* **Flexible API**: RadGridView control provides a rich and flexible API, which will let the developers easily customize the layout or the behavior of the control. Furthermore, the API will be similar to the API of our existing controls, so it will be easier for those who have already used our products to use any other new component from our **Telerik UI for WinForms** suite.

## Related Video

[RadGridView for WinForms Webinar](https://www.telerik.com/videos/radgridview-for-winforms-webinar) provides an in-depth overview of the grid component.

![Telerik UI for WinForms RadGridView webinar thumbnail for the component overview video](https://www.telerik.com/products/winforms/documentation/assets/cecb516efbcdfc78b67f30d2478121c7/gridview-overview002.png)

For written guidance on the grid's features, use the [Key Features](https://www.telerik.com/products/winforms/documentation/controls/gridview/overview#key-features) section above and its linked articles. For a step-by-step written tutorial, follow [Get Started with the Telerik UI for WinForms GridView](https://www.telerik.com/products/winforms/documentation/controls/gridview/getting-started).

## Telerik UI for WinForms Learning Resources

* [Telerik UI for WinForms GridView Homepage](https://www.telerik.com/products/winforms/gridview.aspx)
* [Get Started with the Telerik UI for WinForms GridView](https://www.telerik.com/products/winforms/documentation/controls/gridview/getting-started)
* [Telerik UI for WinForms API Reference](https://docs.telerik.com/devtools/winforms/api/)
* [Getting Started with Telerik UI for WinForms Components](https://www.telerik.com/products/winforms/documentation/getting-started/first-steps)
* [Telerik UI for WinForms Virtual Classroom (Training Courses for Registered Users)](https://learn.telerik.com/learn/course/external/view/elearning/17/TelerikUIforWinForms)
* [Telerik UI for WinForms Forum](https://www.telerik.com/forums/winforms)
* [Telerik UI for WinForms Knowledge Base](https://docs.telerik.com/devtools/winforms/knowledge-base)

## Telerik UI for WinForms Additional Resources

* [Telerik UI for WinForms Product Overview](https://www.telerik.com/products/winforms.aspx)
* [Telerik UI for WinForms Blog](https://www.telerik.com/blogs/desktop-winforms)
* [Telerik UI for WinForms Videos](https://www.telerik.com/videos/product/winforms)
* [Telerik UI for WinForms Roadmap](https://www.telerik.com/support/whats-new/winforms/roadmap)
* [Telerik UI for WinForms Pricing](https://www.telerik.com/purchase/individual/winforms.aspx)
* [Telerik UI for WinForms Code Library](https://www.telerik.com/support/code-library/winforms)
* [Telerik UI for WinForms Support](https://www.telerik.com/support/winforms)
* [What’s New in Telerik UI for WinForms](https://www.telerik.com/support/whats-new/winforms)

## See Also

* [Getting started](https://www.telerik.com/products/winforms/documentation/controls/gridview/getting-started)
* [Key features](https://www.telerik.com/products/winforms/documentation/controls/gridview/fundamentals/key-features)
* [Element Hierarchy](https://www.telerik.com/products/winforms/documentation/controls/gridview/fundamentals/element-hierarchy)
