DataGridView (Clase)
Ensamblado: System.Windows.Forms (en system.windows.forms.dll)
[ClassInterfaceAttribute(ClassInterfaceType.AutoDispatch)] [ComVisibleAttribute(true)] public class DataGridView : Control, ISupportInitialize
/** @attribute ClassInterfaceAttribute(ClassInterfaceType.AutoDispatch) */ /** @attribute ComVisibleAttribute(true) */ public class DataGridView extends Control implements ISupportInitialize
ClassInterfaceAttribute(ClassInterfaceType.AutoDispatch) ComVisibleAttribute(true) public class DataGridView extends Control implements ISupportInitialize
El control DataGridView proporciona una tabla personalizable para mostrar datos. La clase DataGridView permite personalizar celdas, filas, columnas y bordes mediante propiedades como DefaultCellStyle, ColumnHeadersDefaultCellStyle, CellBorderStyle y GridColor. Para obtener más información, vea Estilo y formato básicos del control DataGridView en formularios Windows Forms.
Puede utilizar un control DataGridView para mostrar datos con o sin un origen de datos subyacente. Sin especificar un origen de datos, puede crear las columnas y filas que contendrán los datos y agregarlas directamente a DataGridView. Como alternativa, puede establecer las propiedades DataSource y DataMember para enlazar el control DataGridView a un origen de datos y llenarlo de datos automáticamente. Para obtener más información, vea Mostrar datos en el control DataGridView de formularios Windows Forms.
Al trabajar con grandes cantidades de datos, puede establecer la propiedad VirtualMode en true para mostrar un subconjunto de los datos disponibles. El modo virtual requiere la implementación de una caché de datos a partir de la cual se llenará el control DataGridView. Para obtener más información, vea Modos de presentación de datos en el control DataGridView de formularios Windows Forms.
Para obtener información adicional acerca de las características disponible en el control DataGridView, vea DataGridView (Control, formularios Windows Forms). En la siguiente tabla se proporcionan vínculos directos a tareas comunes.
Aunque el control DataGridView reemplaza y agrega funcionalidad al control DataGrid de las versiones anteriores, se conserva el control DataGrid por compatibilidad con las versiones anteriores y para uso futuro, si así se elige. Para obtener más información, vea Diferencias entre los controles DataGridView y DataGrid de formularios Windows Forms.
Nota: |
|---|
| El control DataGridView hereda las propiedades ContextMenu y ContextMenuStrip de Control, pero sólo admite la propiedad ContextMenuStrip. El uso de la propiedad ContextMenu con el control DataGridView no tiene ningún efecto. |
En el ejemplo de código siguiente se muestra cómo inicializar un control DataGridView independiente.
using System; using System.Drawing; using System.Windows.Forms; public class Form1 : System.Windows.Forms.Form { private Panel buttonPanel = new Panel(); private DataGridView songsDataGridView = new DataGridView(); private Button addNewRowButton = new Button(); private Button deleteRowButton = new Button(); public Form1() { this.Load += new EventHandler(Form1_Load); } private void Form1_Load(System.Object sender, System.EventArgs e) { SetupLayout(); SetupDataGridView(); PopulateDataGridView(); } private void songsDataGridView_CellFormatting(object sender, System.Windows.Forms.DataGridViewCellFormattingEventArgs e) { if (this.songsDataGridView.Columns[e.ColumnIndex].Name == "Release Date") { if (e != null) { if (e.Value != null) { try { e.Value = DateTime.Parse(e.Value.ToString()) .ToLongDateString(); e.FormattingApplied = true; } catch (FormatException) { Console.WriteLine("{0} is not a valid date.", e.Value.ToString()); } } } } } private void addNewRowButton_Click(object sender, EventArgs e) { this.songsDataGridView.Rows.Add(); } private void deleteRowButton_Click(object sender, EventArgs e) { if (this.songsDataGridView.SelectedRows.Count > 0 && this.songsDataGridView.SelectedRows[0].Index != this.songsDataGridView.Rows.Count - 1) { this.songsDataGridView.Rows.RemoveAt( this.songsDataGridView.SelectedRows[0].Index); } } private void SetupLayout() { this.Size = new Size(600, 500); addNewRowButton.Text = "Add Row"; addNewRowButton.Location = new Point(10, 10); addNewRowButton.Click += new EventHandler(addNewRowButton_Click); deleteRowButton.Text = "Delete Row"; deleteRowButton.Location = new Point(100, 10); deleteRowButton.Click += new EventHandler(deleteRowButton_Click); buttonPanel.Controls.Add(addNewRowButton); buttonPanel.Controls.Add(deleteRowButton); buttonPanel.Height = 50; buttonPanel.Dock = DockStyle.Bottom; this.Controls.Add(this.buttonPanel); } private void SetupDataGridView() { this.Controls.Add(songsDataGridView); songsDataGridView.ColumnCount = 5; songsDataGridView.ColumnHeadersDefaultCellStyle.BackColor = Color.Navy; songsDataGridView.ColumnHeadersDefaultCellStyle.ForeColor = Color.White; songsDataGridView.ColumnHeadersDefaultCellStyle.Font = new Font(songsDataGridView.Font, FontStyle.Bold); songsDataGridView.Name = "songsDataGridView"; songsDataGridView.Location = new Point(8, 8); songsDataGridView.Size = new Size(500, 250); songsDataGridView.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.DisplayedCellsExceptHeaders; songsDataGridView.ColumnHeadersBorderStyle = DataGridViewHeaderBorderStyle.Single; songsDataGridView.CellBorderStyle = DataGridViewCellBorderStyle.Single; songsDataGridView.GridColor = Color.Black; songsDataGridView.RowHeadersVisible = false; songsDataGridView.Columns[0].Name = "Release Date"; songsDataGridView.Columns[1].Name = "Track"; songsDataGridView.Columns[2].Name = "Title"; songsDataGridView.Columns[3].Name = "Artist"; songsDataGridView.Columns[4].Name = "Album"; songsDataGridView.Columns[4].DefaultCellStyle.Font = new Font(songsDataGridView.DefaultCellStyle.Font, FontStyle.Italic); songsDataGridView.SelectionMode = DataGridViewSelectionMode.FullRowSelect; songsDataGridView.MultiSelect = false; songsDataGridView.Dock = DockStyle.Fill; songsDataGridView.CellFormatting += new DataGridViewCellFormattingEventHandler( songsDataGridView_CellFormatting); } private void PopulateDataGridView() { string[] row0 = { "11/22/1968", "29", "Revolution 9", "Beatles", "The Beatles [White Album]" }; string[] row1 = { "1960", "6", "Fools Rush In", "Frank Sinatra", "Nice 'N' Easy" }; string[] row2 = { "11/11/1971", "1", "One of These Days", "Pink Floyd", "Meddle" }; string[] row3 = { "1988", "7", "Where Is My Mind?", "Pixies", "Surfer Rosa" }; string[] row4 = { "5/1981", "9", "Can't Find My Mind", "Cramps", "Psychedelic Jungle" }; string[] row5 = { "6/10/2003", "13", "Scatterbrain. (As Dead As Leaves.)", "Radiohead", "Hail to the Thief" }; string[] row6 = { "6/30/1992", "3", "Dress", "P J Harvey", "Dry" }; songsDataGridView.Rows.Add(row0); songsDataGridView.Rows.Add(row1); songsDataGridView.Rows.Add(row2); songsDataGridView.Rows.Add(row3); songsDataGridView.Rows.Add(row4); songsDataGridView.Rows.Add(row5); songsDataGridView.Rows.Add(row6); songsDataGridView.Columns[0].DisplayIndex = 3; songsDataGridView.Columns[1].DisplayIndex = 4; songsDataGridView.Columns[2].DisplayIndex = 0; songsDataGridView.Columns[3].DisplayIndex = 1; songsDataGridView.Columns[4].DisplayIndex = 2; } [STAThreadAttribute()] static void Main() { Application.EnableVisualStyles(); Application.Run(new Form1()); } }
System.MarshalByRefObject
System.ComponentModel.Component
System.Windows.Forms.Control
System.Windows.Forms.DataGridView
Referencia
DataGridView (Miembros)System.Windows.Forms (Espacio de nombres)
Otros recursos
DataGridView (Control, formularios Windows Forms)Información general del control DataGridView (Formularios Windows Forms)
Estilo y formato básicos del control DataGridView en formularios Windows Forms
Mostrar datos en el control DataGridView de formularios Windows Forms
Modos de presentación de datos en el control DataGridView de formularios Windows Forms
Diferencias entre los controles DataGridView y DataGrid de formularios Windows Forms
Nota: