[ mmilinca @ 02.11.2005. 12:03 ] @
|
Koristim VisualStudio 2003 za razvoj windows ( a ne web) aplikacije.
Zelim da rezultat upita nad bazom prikazem tako da mi sirina kolone odgovara sirini podatka.
U VS 2005 se to resava jednim korakom
dvgStatus.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells
gde je dvgStatus tipa DataGridView
Kako to da uradim u VS 2003 |
[ Oliver Klaćik @ 03.11.2005. 08:59 ] @
Pokušavao sam sinoć nešto u vezi sa tim, ali mislim da je u .NET Framework-u 1.x to nemoguće. Ipak nisam 100% siguran. Potraži u MSDN-u metod DataGridColumnStyle.GetPreferredSize, pa ćeš možda preko njega moći to da uradiš, ali jedino 'pešaka'. Znači da petljom prođeš sve zapise, nađeš najširi i prema njemu podesiš širinu kolone.
[ mmilinca @ 04.11.2005. 10:19 ] @
hvala na pomoci
[ serbianmorpheus @ 04.11.2005. 17:21 ] @
Evo malo coda :
Public Sub AutoSizeTable()
Dim numCols As Integer
numCols = DS.Tables(0).Columns.Count
Dim i As Integer
i = 1
Do While (i < numCols - 1)
AutoSizeCol(i)
i = (i + 1)
Loop
End Sub
Public Sub AutoSizeCol(ByVal col As Integer)
Dim width As Single
width = 0
Dim numRows As Integer
numRows = DS.Tables(0).Rows.Count
Dim g As Graphics
g = Graphics.FromHwnd(DataGrid1.Handle)
Dim sf As StringFormat
sf = New StringFormat(StringFormat.GenericTypographic)
Dim size As SizeF
Dim i As Integer
i = 0
Do While (i < numRows)
size = g.MeasureString(DataGrid1(i, col).ToString, DataGrid1.Font, 500, sf)
If (size.Width > width) Then
width = size.Width
End If
i = (i + 1)
Loop
g.Dispose()
DataGrid1.TableStyles(0).GridColumnStyles(col).Width = CType(width, Integer)
End Sub
Copyright (C) 2001-2025 by www.elitesecurity.org. All rights reserved.