Hola saludos¡
Para los que han usado el S-Grid aun no encuentro la forma de aisgnarle un width a las columnas, hasta ahora he venido utilizando la propiedad
'AutoWidthColumn', pero esto solo pone el width de acuerdo al contenido devuelto en el recordset para cada celda. El detalle es que a veces el nombre del encabezado no es legible cuado el contenido de la celda es pequeño, ejemplo:
Codigo de Barras Descripcion
1 Ego de Brut
Ahi el AutowidthColumn del codigo de barras es 1, y no es legible el encabezado.
Será que no se puede asignar una ancho de columna como en el Listview estandar del vb o no logro encontrarlo?
Espero me haya explicado, enseguida viene el code que estoy manejando:
Public Function LoadServicios()
On Error GoTo Error_Handler
' -----------------------------------------------
' -- Crear nuevo recordset
Dim rs As New Recordset
' -- Cargar la tabla
' -----------------------------------------------
Set rs = Conexion.Execute("Una consulta cualquiera'")
If rs.EOF = False Then
Dim iCol As Integer
' -- Setear Grid
' -------------------------------------------
With vbGrid
.Clear True
'.ImageList = vbalImageList2
.GridLines = True ' -- Mostrar Lineas divisorias
.RowMode = True ' -- Seleccionar fila completa
.HotTrack = False
' -- Deshabilitar Redraw para agilizar la carga
'.AlternateRowBackColor = vbButtonFace
.Redraw = False
DoEvents
' -- Agregar columna para el icono del producto ( Hacerla fija -- Valor FixedWidth)
' ----------------------------------------
'.AddColumn "icono", "", , , 34, , True
' -- Agregar columnas al Grid - Caption, la clave
' ----------------------------------------
For iCol = 0 To rs.Fields.Count - 1
Call .AddColumn(rs(iCol).Name, rs(iCol).Name)
'.ColumnWidth = 50
Next
' -- Recorrer el rs
' -----------------------------------------
Do While Not rs.EOF
' -- Nueva fila
.AddRow
' -- Cargar la primer celda -- El icono
'Call .CellDetails(.Rows, .ColumnIndex("icono"), , DT_CENTER, 0)
' -- recorrer las demás celdas
For iCol = 1 To .Columns
' -- Comprobar que el dato no sea un Null
If Not IsNull(rs(iCol - 1)) Then
' -- Agregar el dato
Call .CellDetails(.Rows, .ColumnIndex(rs(iCol - 1).Name), rs(iCol - 1))
.AutoWidthColumn (iCol)
End If
Next
' -- Alto de filas = al del icono + 4 pixeles
' .DefaultRowHeight = 4 'vbalImageList2.IconSizeX + 4
' -- Siguiente registro
rs.MoveNext
Loop
' -- Importante !! Habilitar nuevamente el Redraw
' --------------------------------------------
.Redraw = True
DoEvents
End With
'consulta = ""
Else
'msj "¡ NO SE ENCONTRO INFORMACION !"
'txtDato.Text = "": txtDato.SetFocus
Exit Function
End If
' -- Cerrar
rs.Close
Set rs = Nothing
' -- Errores
Exit Function
Error_Handler:
MsgBox Err.Description, vbCritical, "Error al Cargar Servicios"
End Function