.net - imagen - colores en datagridview vb net
DataGridView: ¿cómo establecer el ancho de la columna? (12)
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
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.
También se puede intentar lo siguiente:
DataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.DisplayedCells
o use las otras opciones de configuración en DataGridViewAutoSizeColumnsMode Enum
Utilizar:
yourdataView.AutoResizeColumns(DataGridViewAutoSizeColumnsMode.AllCells);
Puede usar la propiedad DataGridViewColumn.Width para hacerlo:
DataGridViewColumn column = dataGridView.Columns[0];
column.Width = 60;
http://msdn.microsoft.com/en-us/library/system.windows.forms.datagridviewcolumn.width.aspx
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.
public static void ArrangeGrid(DataGridView Grid)
{
int twidth=0;
if (Grid.Rows.Count > 0)
{
twidth = (Grid.Width * Grid.Columns.Count) / 100;
for (int i = 0; i < Grid.Columns.Count; i++)
{
Grid.Columns[i].Width = twidth;
}
}
}
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
La mayoría de las soluciones anteriores asumen que el DateGridView
padre tiene .AutoSizeMode
no igual a Fill
. Si establece el .AutoSizeMode
para que la cuadrícula sea Fill
, necesita configurar el AutoSizeMode para que cada columna sea None
si desea corregir un ancho de columna determinado (y dejar que las otras columnas se llenen). Encontré una extraña excepción de MS con respecto a un objeto nulo si cambias el ancho de una columna y el .AutoSizeMode
no es None
primero.
Esto funciona
chart.AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
... add some columns here
chart.Column[i].AutoSizeMode = DataGridViewAutoSizeColumnMode.None;
chart.Column[i].Width = 60;
Esto arroja una excepción nula con respecto a algún objeto interno con respecto al ajuste del grosor del borde.
chart.AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
... add some columns here
// chart.Column[i].AutoSizeMode = DataGridViewAutoSizeColumnMode.None;
chart.Column[i].Width = 60;
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
Puede establecer el ancho y la altura predeterminados para todas las Columnas y Filas de la siguiente manera solo con un bucle.
// DataGridView Name= dgvMachineStatus
foreach (DataGridViewColumn column in dgvMachineStatus.Columns)
{
column.Width = 155;
}
foreach (DataGridViewRow row in dgvMachineStatus.Rows)
{
row.Height = 45;
}