我要实现的功能是:
在客户窗体中, 用一个DateGrid来显示该客户近期订购的商品信息.
要求实现 DataGrid 控件列宽的自动适应调整.我看了您所提供的示例代码, 照葫芦画瓢解决方案如下:
一个cmd查出Order表中结构, 返回列名, 完成一个DataTable的构造
另一个cmd 查询该客户的交易充填到DataTable表
然后绑定, 输出. 我照搬了您给我的代码, 发现程序中有错误, 提示如下:
“System.Windows.Forms.DataGrid.TableStyles”表示“属性”,此处应为“方法”
因为我能力有限还请大侠再能帮我一把, 不胜感激.
另外还有其他的方法来绑定DataGrid吗? 有的话请不吝赐教.
// http://community.csdn.net/Expert/topic/4091/4091247.xml?temp=.9617578
在客户窗体中, 用一个DateGrid来显示该客户近期订购的商品信息.
要求实现 DataGrid 控件列宽的自动适应调整.我看了您所提供的示例代码, 照葫芦画瓢解决方案如下:
一个cmd查出Order表中结构, 返回列名, 完成一个DataTable的构造
另一个cmd 查询该客户的交易充填到DataTable表
然后绑定, 输出. 我照搬了您给我的代码, 发现程序中有错误, 提示如下:
“System.Windows.Forms.DataGrid.TableStyles”表示“属性”,此处应为“方法”
因为我能力有限还请大侠再能帮我一把, 不胜感激.
另外还有其他的方法来绑定DataGrid吗? 有的话请不吝赐教.
// http://community.csdn.net/Expert/topic/4091/4091247.xml?temp=.9617578
this.DataGrid1.TableStyles["MyTable"].GridColumnStyles[i].Width
Public Sub SizeColumnsToContent(ByVal dataGrid As DataGrid, ByVal nRowsToScan As Integer)
Dim Graphics As Graphics = dataGrid.CreateGraphics()
Dim tableStyle As DataGridTableStyle = New DataGridTableStyle Try Dim dataTable As DataTable = CType(dataGrid.DataSource, DataTable) If -1 = nRowsToScan Then nRowsToScan = dataTable.Rows.Count Else
nRowsToScan = System.Math.Min(nRowsToScan, dataTable.Rows.Count)
End If dataGrid.TableStyles.Clear()
tableStyle.MappingName = dataTable.TableName
Dim columnStyle As DataGridTextBoxColumn
Dim iWidth As Integer
For iCurrCol As Integer = 0 To dataTable.Columns.Count - 1
Dim dataColumn As DataColumn = dataTable.Columns(iCurrCol)
columnStyle = New DataGridTextBoxColumn
columnStyle.TextBox.Enabled = True
columnStyle.HeaderText = dataColumn.ColumnName
columnStyle.MappingName = dataColumn.ColumnName
iWidth = CInt(Graphics.MeasureString(columnStyle.HeaderText, dataGrid.Font).Width)
Dim dataRow As DataRow
For iRow As Integer = 0 To nRowsToScan - 1
dataRow = dataTable.Rows(iRow)
If dataRow(dataColumn.ColumnName) <> Nothing Then
Dim iColWidth As Integer = CInt(Graphics.MeasureString(dataRow.ItemArray(iCurrCol).ToString(), dataGrid.Font).Width)
Dim iColHight As Integer = CInt(Graphics.MeasureString(dataRow.ItemArray(iCurrCol).ToString(), dataGrid.Font).Height)
iWidth = CInt(System.Math.Max(iWidth, iColWidth))
End If
Next
columnStyle.Width = iWidth + 10
tableStyle.GridColumnStyles.Add(columnStyle)
Next
dataGrid.TableStyles.Add(tableStyle)
Catch ex As Exception
MessageBox.Show(ex.Message)
Finally
Graphics.Dispose()
End Try
End Sub