Diferencias entre los controles DataGridView y DataGrid de Windows FormsDifferences Between the Windows Forms DataGridView and DataGrid Controls

El control DataGridView es un nuevo control que reemplaza el control DataGrid.The DataGridView control is a new control that replaces the DataGrid control. El control DataGridView proporciona numerosas características básicas y avanzadas que faltan en el control DataGrid.The DataGridView control provides numerous basic and advanced features that are missing in the DataGrid control. Además, la arquitectura del control DataGridView hace que sea mucho más fácil extender y personalizar que el control DataGrid.Additionally, the architecture of the DataGridView control makes it much easier to extend and customize than the DataGrid control.

En la tabla siguiente se describen algunas de las características principales disponibles en el control DataGridView que faltan en el control DataGrid.The following table describes a few of the primary features available in the DataGridView control that are missing from the DataGrid control.

Característica de control DataGridViewDataGridView control feature DescripciónDescription
Varios tipos de columnaMultiple column types El control DataGridView proporciona más tipos de columna integrados que el control DataGrid.The DataGridView control provides more built-in column types than the DataGrid control. Estos tipos de columna satisfacen las necesidades de los escenarios más comunes, pero también son más fáciles de ampliar o reemplazar que los tipos de columna del control DataGrid.These column types meet the needs of most common scenarios, but are also easier to extend or replace than the column types in the DataGrid control. Para obtener más información, vea tipos de columna en el control DataGridView de Windows Forms.For more information, see Column Types in the Windows Forms DataGridView Control.
Varias formas de Mostrar datosMultiple ways to display data El control DataGrid se limita a mostrar los datos de un origen de datos externo.The DataGrid control is limited to displaying data from an external data source. Sin embargo, el control DataGridView puede mostrar los datos no enlazados almacenados en el control, los datos de un origen de datos enlazado, o los datos enlazados y sin enlazar juntos.The DataGridView control, however, can display unbound data stored in the control, data from a bound data source, or bound and unbound data together. También puede implementar el modo virtual en el control DataGridView para proporcionar administración de datos personalizada.You can also implement virtual mode in the DataGridView control to provide custom data management. Para obtener más información, vea modos de presentación de datos en el control DataGridView Windows Forms.For more information, see Data Display Modes in the Windows Forms DataGridView Control.
Varias maneras de personalizar la presentación de datosMultiple ways to customize the display of data El control DataGridView proporciona muchas propiedades y eventos que le permiten especificar cómo se da formato a los datos y cómo se muestran.The DataGridView control provides many properties and events that enable you to specify how data is formatted and displayed. Por ejemplo, puede cambiar la apariencia de las celdas, filas y columnas en función de los datos que contienen, o puede reemplazar los datos de un tipo de datos por datos equivalentes de otro tipo.For example, you can change the appearance of cells, rows, and columns depending on the data they contain, or you can replace data of one data type with equivalent data of another type. Para obtener más información, vea formato de datos en el control DataGridView de Windows Forms.For more information, see Data Formatting in the Windows Forms DataGridView Control.
Varias opciones para cambiar la apariencia y el comportamiento de las celdas, filas, columnas y encabezadosMultiple options for changing cell, row, column, and header appearance and behavior El control DataGridView permite trabajar con componentes de cuadrícula individuales de varias maneras.The DataGridView control enables you to work with individual grid components in numerous ways. Por ejemplo, puede inmovilizar filas y columnas para evitar que se desplacen; ocultar filas, columnas y encabezados; cambiar la manera en que se ajustan los tamaños de fila, columna y encabezado; cambiar la manera en que los usuarios realizan selecciones; y proporcionan información sobre herramientas y menús contextuales para celdas, filas y columnas individuales.For example, you can freeze rows and columns to prevent them from scrolling; hide rows, columns, and headers; change the way row, column, and header sizes are adjusted; change the way users make selections; and provide ToolTips and shortcut menus for individual cells, rows, and columns.

El control DataGrid se conserva por compatibilidad con versiones anteriores y para las necesidades especiales.The DataGrid control is retained for backward compatibility and for special needs. En casi todos los casos, debe usar el control DataGridView.For nearly all purposes, you should use the DataGridView control. La única característica que está disponible en el control DataGrid que no está disponible en el control de DataGridView es la presentación jerárquica de información de dos tablas relacionadas en un único control.The only feature that is available in the DataGrid control that is not available in the DataGridView control is the hierarchical display of information from two related tables in a single control. Debe utilizar dos controles DataGridView para mostrar información de dos tablas que se encuentran en una relación principal-detalle.You must use two DataGridView controls to display information from two tables that are in a master/detail relationship.

Actualizar al control DataGridViewUpgrading to the DataGridView Control

Si tiene aplicaciones existentes que usan el control de DataGrid en un escenario de enlace de datos simple sin personalizaciones, puede reemplazar simplemente el control anterior por el nuevo control.If you have existing applications that use the DataGrid control in a simple data-bound scenario without customizations, you can simply replace the old control with the new control. Ambos controles usan la arquitectura de enlace de datos estándar Windows Forms, por lo que el control DataGridView mostrará los datos enlazados sin necesidad de configuración adicional.Both controls use the standard Windows Forms data-binding architecture, so the DataGridView control will display your bound data with no additional configuration needed. Sin embargo, es posible que desee aprovechar las mejoras de enlace de datos enlazando los datos a un componente de BindingSource, que puede enlazar a la DataGridView control.You might want to consider taking advantage of data-binding improvements, however, by binding your data to a BindingSource component, which you can then bind to the DataGridView control. Para obtener más información, vea BindingSource (componente).For more information, see BindingSource Component.

Dado que el control de DataGridView tiene una arquitectura completamente nueva, no hay ninguna ruta de conversión sencilla que le permita usar las personalizaciones de DataGrid con el control de DataGridView.Because the DataGridView control has an entirely new architecture, there is no straightforward conversion path that will enable you to use DataGrid customizations with the DataGridView control. Sin embargo, muchas de las personalizaciones de DataGrid no son necesarias con el control DataGridView, debido a las características integradas disponibles en el nuevo control.Many DataGrid customizations are unnecessary with the DataGridView control, however, because of the built-in features available in the new control. Si ha creado tipos de columna personalizados para el control DataGrid que desea utilizar con el control DataGridView, tendrá que implementarlos de nuevo con la nueva arquitectura.If you have created custom column types for the DataGrid control that you want to use with the DataGridView control, you will have to implement them again using the new architecture. Para obtener más información, vea personalizar el control DataGridView Windows Forms.For more information, see Customizing the Windows Forms DataGridView Control.

Consulte tambiénSee also