2012-01-02 16 views
13

En mi rejilla que había siguiente línea de código que el cambio de tamaño manual de personas con discapacidad del usuario:ajustar la altura de la fila en el código y el manual desactivar DataGridView cambiar el tamaño

dgvTruckAvail.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.AllCells; 

Ahora necesario para establecer la altura de la columna en el código y no funcionó (Consulte DataGridView setting row height doesn't work)

Me di cuenta de que era esta línea de código la que causaba problemas de tamaño. Sin embargo, ahora tengo que encontrar la manera de

  1. filas de tamaño en código

y

  1. Prevenir dimensionamiento de usuario filas mismos

¿Alguna sugerencia?

Respuesta

26

Set:

dgvTruckAvail.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.None; 
dgvTruckAvail.AllowUserToResizeRows = false; 

Esto desactivará autosizing fila y fila cambio de tamaño manual. Para configurar la altura de fila, puede usar las propiedades Height y MinimumHeight del RowTemplate.

+0

Gracias! Al principio no funcionó, pero luego noté que había otra propiedad configurada en RowTemplate. – katit

+0

Descubrí que configurar Row.Height no funcionaba hasta después de que DataGridView.Visible se estableciera en True. Así que puse el código Row.Height en el controlador de eventos VisibleChanged. – gmlobdell

+0

Por ejemplo: 'vacío privado Dgv_VisibleChanged (remitente del objeto, EventArgs e) { if (el remitente es DataGridView && ((DataGridView) remitente).Visible) { DataGridView dgv = remitente como DataGridView; SetRowHeight (dgv); } } ' – gmlobdell

0

En el conjunto de propiedades de ventana:

AllowUserToResizeRows = False

3

Ajuste de tamaño de fila es un verdadero reto. Verifica cuántas quejas y respuestas hay en la web. He descubierto que a veces una forma funciona y otras veces ya no funciona.

Haga esto: Coloque un DataGridView en su formulario. Edita y agrega varias columnas. No importa lo que sean porque descartarás este DGV en un momento. Vaya a las propiedades de este DataGridView y edite RowTemplate/Height en algo pequeño o grande (solo para que pueda ver que funciona). Agregue una línea de código en su método para configurar XXX.RowCount a algo así como 12 solo para rellenar esta prueba DataGridView. Ejecute su código para verificar que la altura de la fila haya cambiado.

Abra el código XXX.Designer.cs. Expanda el "código generado de Windows Form Designer" y busque el código que se aplica a lo que acaba de hacer con DataGridView. Cópielo todo en el método en el que está tratando de ajustar/establecer la altura de la fila. Comente todo su código. Línea por línea, modifique el código autogenerado para usar el nombre de su objeto. Pruebe repetidamente cualquier falla y aíslela en ese momento.

Ahora regrese y elimine este objeto DataGridView de prueba.

Cuestiones relacionadas