En el procedimiento de mostrar la tabla añadí directamente la propiedad expand a True:
(Para que esto no se haga dentro del evento Data y haga muchas ejecuciones )
Código:
Public Sub MostrarTablaEnGridView(nomtabla As String)
Dim HRsf As ResultField
Dim columna As Integer
HResul = ModGestBase.MostrarTabla(nomtabla)
With grdTabla
.Columns.Count = HResul.Fields.Count
.Header = .Both
.Mode = Select.Single
.AutoResize = True
End With
For Each HRsf In HResul.Fields
grdTabla.Columns[columna].Text = HRsf.Name
grdTabla.Columns[columna].Expand = True
columna += 1
Next
grdTabla.Rows.Count = HResul.Count
End
Y luego en el evento data lo he dejado así:
Código:
Public Sub grdTabla_Data(Row As Integer, Column As Integer)
HResul.MoveTo(Row)
grdTabla.Data.Text = HResul[grdTabla.Columns[Column].Text]
grdTabla.Data.WordWrap = True
grdTabla.Rows[Row].Height = Max(grdTabla.Rows[Row].Height, grdTabla.Font.RichTextHeight(grdTabla.Data.Text, grdTabla.Columns[Column].Width) + 5) ' El valor de 5 se puede probar con 8 o 10.
End
Ese +5 es el que hace que el texto no este pegado tanto al borde superior o inferior de la fila.
Se puede calcular el alto.
El registro que mostré antes que era super largo ahora se muestra de otra forma:
Lo que parece es que intentáis que todas las columnas se muestren en el ancho que tengáis que va adquiriendo el GridView,
según se expande.Cambiáis el alto de la fila y de esta forma no tenéis que estar desplazado la barra horizontal del GridView.
Pues como tenga ciento y la madre de campos la tabla ( mal hecha) .
Saludos