Zona HTML Zona Java Zona PHP Zona ASP Zona Bases de datos
Inicio > Foros > Tecnologías .NET > ajustar automaticamente el tamaño de las celdas de un datagrid según los datos
-Foros de debate

Tecnologías .NET
Lista de foros | Lista de mensajes de este foro

Privacidad: Recuerde que la información escrita en los foros de programación es 100% pública y que su ip será registrada asociada a su mensaje. Si encuentra un mensaje fuera de lugar, por favor, notifiquelo para su revisión y eliminación.

ajustar automaticamente el tamaño de las celdas de un datagrid según los datos
Enviado por juantxeras el día 16 de febrero de 2006

Hola a todos· ¿Sabéis como puedo hacer que las columnas de un datagrid se
ajusten automáticamente al tamaño de los datos que muestra?

Gracias

 
Re: ajustar automaticamente el tamaño de las celdas de un datagrid según los datos
Enviado por Ricardo el día 20 de febrero de 2006

Puedes probar poner la propiedad RowHeaderWidth = -2 despues de llenarlo. No suelo usar datagrids, o sea que no estoy seguro de que funcione con datagrids tambien. Espero que te ayude!

Saludos.

 
Re: Re: ajustar automaticamente el tamaño de las celdas de un datagrid según los datos
Enviado por juantxeras el día 21 de febrero de 2006

muchas gracias por ayudarme pero no me hace nada.
se te ocurre algo más?

 
Re: Re: Re: ajustar automaticamente el tamaño de las celdas de un datagrid según los datos
Enviado por Ricardo el día 21 de febrero de 2006

Si se puede hacer tiene que ser algo por el estilo. A lo mejor es otra propiedad la que tienes que poner a -2. Nunca me han gustado los datagrids.. prefiero listviews, aunque sea mas trabajo. Son mas agradables de utilizar.

 
Re: Re: Re: Re: ajustar automaticamente el tamaño de las celdas de un datagrid según los d
Enviado por juantxeras el día 23 de febrero de 2006

no lo he encontrado todabia.
los listviews?????
me podrías explicar algo mas? yo un poco novato en esto

 
Re: Re: Re: Re: Re: ajustar automaticamente el tamaño de las celdas de un datagrid según l
Enviado por juantxeras el día 1 de marzo de 2006

me voy a responder yo mismo ;)


Private Function LongestField(ByRef DataSet As DataSet, ByRef DataGrid As DataGrid, ByVal NombreColumna As String) As Integer
On Error Resume Next
LongestField = 10
'el mayor igual a 0
Dim maxlength As Integer = 0
'crear una grafico
Dim g As Graphics = DataGrid.CreateGraphics() ' Take width of one blank space and add to the new width of the Column.
'convertir a un entero el ancho de la letra elegida
Dim offset As Integer = Convert.ToInt32(Math.Ceiling(g.MeasureString(" ", DataGrid.Font).Width))
Dim i As Integer = 0
Dim intaux As Integer
Dim intNomColumna As Integer
Dim straux As String

'capturar el total de filas del dataset
Dim tot As Integer = DataSet.Tables(0).Rows.Count

'desde la primer fila hasta la ultima buscar la letra mas grande

intNomColumna = Convert.ToInt32(Math.Ceiling(g.MeasureString(NombreColumna, DataGrid.Font).Width))
maxlength = intNomColumna

For i = 0 To (tot - 1)
straux = DataSet.Tables(0).Rows(i)(NombreColumna).ToString() ' Get the width of Current Field String according to the Font.
intNomColumna = Convert.ToInt32(Math.Ceiling(g.MeasureString(NombreColumna, DataGrid.Font).Width))
intaux = Convert.ToInt32(Math.Ceiling(g.MeasureString(straux, DataGrid.Font).Width))

If intNomColumna > intaux Then
intaux = intNomColumna
End If

If (intaux > maxlength) Then
maxlength = intaux
End If
Next

Return maxlength + offset
End Function


Public Sub AjustarColumnas(ByRef DataSet As DataSet, ByRef DataGrid As DataGrid)
Try
' Agregar el nuevo estilo a la tabla
Dim dcColumna As New DataColumn
Dim EstiloTabla As New DataGridTableStyle
Dim Tabla As String = DataSet.Tables(0).TableName.ToString

EstiloTabla.MappingName = Tabla
DataGrid.TableStyles.Clear()
DataGrid.TableStyles.Add(EstiloTabla)

'Buscar y cambiar el ancho de las columnas
For Each dcColumna In DataSet.Tables(Tabla).Columns
Dim Ancho As Integer
Ancho = LongestField(DataSet, DataGrid, dcColumna.ColumnName)
EstiloTabla.GridColumnStyles(dcColumna.ColumnName).Width = Ancho
Next

Catch ex As Exception
MsgBox("error.Auto ajustar las columnas.")
End Try
End Sub

 






Tienda
Patrocinados
 

Copyright © 1999-2006 Programación en castellano. Todos los derechos reservados.
Formulario de Contacto - Datos legales - Publicidad

Hospedaje web y servidores dedicados linux por Ferca Network