.net - formulario - DataGridView: ¿cómo establecer el ancho de la columna?



autosizecolumnsmode datagridview c# (8)

Tengo una aplicación WinForms con control DataGridView . Mi control tiene cinco columnas (digamos "Nombre", "Dirección", "Teléfono", etc.)

No estoy contento con el ancho de columna predeterminado. Quiero tener más control sobre la apariencia de la columna. Lo que quiero es poder hacer una de las siguientes cosas:

  • Establecer el ancho de cada columna en porcentaje
  • Establecer el ancho de cada columna en píxeles
  • Utilice algún otro método de mejor práctica (amplíe el ancho para que se ajuste al texto, etc.)

Por favor sugiérale qué propiedad usar y cómo.


En cuanto a tu bala final

hacer que el ancho se ajuste al texto

Puede experimentar con .AutoSizeMode de su DataGridViewColumn, configurándolo en uno de estos valores:

None
AllCells
AllCellsExceptHeader
DisplayedCells
DisplayedCellsExceptHeader
ColumnHeader
Fill

Más información en la página MSDN


También se puede intentar lo siguiente:

DataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.DisplayedCells

o use las otras opciones de configuración en DataGridViewAutoSizeColumnsMode Enum



sugiero dar un ancho a todas las columnas de la cuadrícula de esta manera:

DataGridViewTextBoxColumn col = new DataGridViewTextBoxColumn();
col.HeaderText = "phone"            
col.Width = 120;
col.DataPropertyName = (if you use a datasource)
thegrid.Columns.Add(col);    

y para la columna principal (o la más larga) (digamos dirección) haga esto:

col = new DataGridViewTextBoxColumn();
col.HeaderText = "address";
col.Width = 120;

la parte difícil

col.MinimumWidth = 120;
col.AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;

la parte difícil

col.DataPropertyName = (same as above)
thegrid.Columns.Add(col);

De esta forma, si estira el formulario (y la cuadrícula está "llena de muelle" en su contenedor), la columna principal, en este caso la columna de dirección, toma todo el espacio disponible, pero nunca va a menos de col.MinimumWidth, entonces es el único que se redimensiona.

Lo uso, cuando tengo una grilla y su última columna se usa para mostrar una imagen (como el detalle del ícono o ícono eliminar ...) y no tiene el encabezado y tiene que ser siempre el más pequeño.


Si no desea hacerlo mediante programación, puede manipular la propiedad Ancho de columna, que se encuentra dentro de la propiedad Columnas. Una vez que abra la propiedad Editar columna, puede elegir qué columna desea editar, desplácese hacia abajo a la sección de diseño del consolida las propiedades de la columna y cambia el ancho.


DataGridView1.Columns.Item("Adress").Width = 60
    DataGridView1.Columns.Item("Phone").Width = 30
    DataGridView1.Columns.Item("Name").Width = 40
    DataGridView1.Columns.Item("Etc.").Width = 30

Sé que esta es una vieja pregunta, pero nadie respondió la primera parte, para establecer el ancho en porcentaje. Eso se puede hacer fácilmente con FillWeight (MSDN). En caso de que alguien más busque esta respuesta.

Puede establecer DataGridAutoSizeColumnMode para completar el diseñador. De forma predeterminada, le da a cada columna FillWeight de 100. Luego, en el código subyacente, en el evento FormLoad o después de vincular los datos a la grilla, puede simplemente:

gridName.Columns[0].FillWeight = 200;
gridName.Columns[1].FillWeight = 50;

Y así sucesivamente, para cualquier peso proporcional que desee. Si desea hacer cada columna con números que sumen 100, para un ancho de porcentaje literal, puede hacerlo también.

Proporciona un buen DataGrid completo donde los encabezados usan todo el espacio, incluso si el usuario cambia el tamaño de la ventana. Se ve bien en pantalla panorámica, 4: 3, lo que sea.


o simplemente puede ir al formulario y cuando llama a los datos que se mostrarán, configure la propiedad como datagridview1.columns (0) .width = 150 datagridview1.columns (1) .width = 150 datagridview1.columns (2) .width = 150 enter code here

Tan simple funcionó tan bien conmigo Bro





controls