Dim myTableStyle As New DataGridTableStyle()
myTableStyle.MappingName = "test"
Dim myCustomerIDStyle As DataGridTextBoxColumn = New DataGridTextBoxColumn()
myCustomerIDStyle.MappingName = "id"
myCustomerIDStyle.HeaderText = "Customer ID"
myTableStyle.GridColumnStyles.Add(myCustomerIDStyle)
Dim myNameStyle As DataGridTextBoxColumn = New DataGridTextBoxColumn()
myNameStyle.MappingName = "name"
myNameStyle.HeaderText = "Name"
myTableStyle.GridColumnStyles.Add(myNameStyle)
DataGrid1.TableStyles.Clear()
DataGrid1.TableStyles.Add(myTableStyle)
改myCustomerIDStyle.MappingName = "id"
myNameStyle.MappingName = "name"
id 与name字段互换即可
先 DataGrid1.DataSource = objdataset.Tables("huajia")
然后调子过程 formatdatagrid() 或者把objtempdataset换成objdataset,不用过程的方法。我是刚学vb.net,代码是可以用的,可以控制想要显示的列,列顺序,或宽度。可能方法笨了点。 :)希望对兄弟有点帮助。
Sub formatdatagrid()
Dim dt As New DataTable
Dim dv As New DataView
dt = objtempdataset.Tables("huajia")
Dim style1 As New DataGridTableStyle
With style1
.MappingName = dt.TableName
.PreferredColumnWidth = 200
.PreferredRowHeight = 15
End With
Dim grdColStyle1 As New DataGridTextBoxColumn
With grdColStyle1
.HeaderText = "text1"
.MappingName = "d1"
.Width = 150
End With
Dim grdColStyle2 As New DataGridTextBoxColumn
With grdColStyle2
.HeaderText = "text2"
.MappingName = "d2"
.Width = 50
End With
Dim grdColStyle3 As New DataGridTextBoxColumn
With grdColStyle3
.HeaderText = "text3"
.MappingName = "d3"
.Width = 50
End With
style1.GridColumnStyles.AddRange(New DataGridColumnStyle() {grdColStyle1, grdColStyle2, grdColStyle3})
DataGrid1.TableStyles.Add(style1)
End Sub