Public Sub AutoSizeCol(ByVal dGrid As DataGrid, ByVal strTableName As String)
Dim width As Decimal
Dim sf As StringFormat
Dim g As Graphics
Dim numRows As Integer
Dim numCols As Integer
Dim size As SizeF
Dim I, J As Integer
numRows = CType(dGrid.DataSource.tables(strTableName), DataTable).Rows.Count
numCols = CType(dGrid.DataSource.tables(strTableName), DataTable).Columns.Count
myGridColumnStylesCollection = dGrid.TableStyles(0).GridColumnStyles
g = Graphics.FromHwnd(dGrid.Handle)
sf = New StringFormat(StringFormat.GenericTypographic)
For I = 0 To numCols
For J = 0 To numRows
size = g.MeasureString(dGrid(J, I), dGrid.Font, 500, sf)
If (size.Width > width) Then width = size.Width
dGrid.TableStyles(strTableName).GridColumnStyles(I).Width = CType(width, Integer)
Next
Next
g.Dispose()
End Sub
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
DataSet1.ReadXml("..\XML\ConditionCode.xml")
dgrdConditionCode.DataMember = DataSet1.Tables(0).TableName
AutoSizeCol(dgrdConditionCode, DataSet1.Tables(0).TableName)
End Sub