Exportar (0) Imprimir
Expandir todo

Cómo: Establecer modos de cambio de tamaño para el control DataGridView de formularios Windows Forms

Los procedimientos siguientes muestran algunos escenarios comunes que personalizan o combinan las opciones disponibles de cambio de tamaño para el control DataGridView y para columnas específicas de un control.

Para crear una columna de ancho fijo

  • Establezca la propiedad AutoSizeMode en None, la propiedad Resizable en False, la propiedad ReadOnly en true y la propiedad Width a un valor adecuado.

    DataGridViewTextBoxColumn idColumn = new DataGridViewTextBoxColumn();
    idColumn.HeaderText = "ID";
    idColumn.AutoSizeMode = DataGridViewAutoSizeColumnMode.None;
    idColumn.Resizable = DataGridViewTriState.False;
    idColumn.ReadOnly = true;
    idColumn.Width = 20;
    
    

Para crear una columna que ajusta su tamaño para adaptar su contenido

  • Establezca la propiedad AutoSizeMode en un modo de cambio de tamaño basado en contenido.

    DataGridViewTextBoxColumn titleColumn = new DataGridViewTextBoxColumn();
    titleColumn.HeaderText = "Title";
    titleColumn.AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCellsExceptHeader;
    
    

Para crear columnas en modo de relleno para los valores de tamaño e importancia variable

  • Establezca las propiedades FillWeight de las columnas en valores que son proporcionales al ancho del contenido medio. Establezca las propiedades MinimumWidth de las columnas importantes para garantizar la presentación parcial del contenido.

    DataGridViewTextBoxColumn subTitleColumn = new DataGridViewTextBoxColumn();
    subTitleColumn.HeaderText = "Subtitle";
    subTitleColumn.MinimumWidth = 50;
    subTitleColumn.FillWeight = 100;
    
    DataGridViewTextBoxColumn summaryColumn = new DataGridViewTextBoxColumn();
    summaryColumn.HeaderText = "Summary";
    summaryColumn.MinimumWidth = 50;
    summaryColumn.FillWeight = 200;
    
    DataGridViewTextBoxColumn contentColumn = new DataGridViewTextBoxColumn();
    contentColumn.HeaderText = "Content";
    contentColumn.MinimumWidth = 50;
    contentColumn.FillWeight = 300;
    
    

Ejemplo

En el ejemplo de código completo siguiente se proporciona una aplicación de demostración que puede ayudarle a entender las opciones de cambio de tamaño descritas en este tema.

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

public class Form1 : Form
{
    [STAThreadAttribute()]
    public static void Main()
    {
        Application.Run(new Form1());
    }

    private DataGridView dataGridView1 = new DataGridView();

    public Form1()
    {
        dataGridView1.Dock = DockStyle.Fill;
        Controls.Add(dataGridView1);
        Width *= 2;
        Text = "DataGridView Sizing Scenarios";
    }

    protected override void OnLoad(EventArgs e)
    {
        DataGridViewTextBoxColumn idColumn = new DataGridViewTextBoxColumn();
        idColumn.HeaderText = "ID";
        idColumn.AutoSizeMode = DataGridViewAutoSizeColumnMode.None;
        idColumn.Resizable = DataGridViewTriState.False;
        idColumn.ReadOnly = true;
        idColumn.Width = 20;

        DataGridViewTextBoxColumn titleColumn = new DataGridViewTextBoxColumn();
        titleColumn.HeaderText = "Title";
        titleColumn.AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCellsExceptHeader;

        DataGridViewTextBoxColumn subTitleColumn = new DataGridViewTextBoxColumn();
        subTitleColumn.HeaderText = "Subtitle";
        subTitleColumn.MinimumWidth = 50;
        subTitleColumn.FillWeight = 100;

        DataGridViewTextBoxColumn summaryColumn = new DataGridViewTextBoxColumn();
        summaryColumn.HeaderText = "Summary";
        summaryColumn.MinimumWidth = 50;
        summaryColumn.FillWeight = 200;

        DataGridViewTextBoxColumn contentColumn = new DataGridViewTextBoxColumn();
        contentColumn.HeaderText = "Content";
        contentColumn.MinimumWidth = 50;
        contentColumn.FillWeight = 300;

        dataGridView1.Columns.AddRange(new DataGridViewTextBoxColumn[]
            {idColumn, titleColumn, subTitleColumn, summaryColumn, contentColumn });
        dataGridView1.Rows.Add(new String[] { "1", 
            "A Short Title", "A Longer SubTitle", 
            "A short description of the main point.", 
            "The full contents of the topic, with detailed examples." });

        base.OnLoad(e);
    }
}

Para utilizar esta aplicación de la demostración:

  • Cambie el tamaño del formulario. Observe cómo las columnas de modo relleno cambian el ancho conservando las proporciones indicadas por los valores de la propiedad FillWeight. Observe cómo la propiedad MinimumWidth de una columna evita que cambien cuando el formulario es demasiado pequeño.

  • Cambie los tamaños de las columnas arrastrando los divisores de columna con el mouse (ratón). Observe cómo no se puede cambiar el tamaño de algunas columnas, y cómo las columnas de tamaño variable no se pueden hacer más estrechas que el ancho mínimo.

Compilar el código

Para este ejemplo se necesita:

Vea también

Adiciones de comunidad

AGREGAR
Mostrar:
© 2014 Microsoft