按NoReady(亦正亦偏)的做法做了
在你这种情况下是可以实现
但如果把tbl换成既有的数据源就不行了
例如:
Dim MyTableSub As Data.DataTable
Dim MyDataSetSub As DataSet = New DataSet()
Dim MyDataAdapter As SqlDataAdapter
MyDataSetSub.Clear()
MyDataAdapter = New SqlDataAdapter(SqlStrSub, Cn)
MyDataAdapter.Fill(MyDataSetSub, SqlStrSub)
MyTableSub = MyDataSetSub.Tables(SqlStrSub)
SqlStrSub = "select 选择,期次,号码,开奖日期 from [P-彩票明细]
Dim TblStyle As New DataGridTableStyle()
Dim ColStyle As DataGridColumnStyle
Dim bColStyle As DataGridBoolColumn
Dim tbl As New DataTable()
With TblStyle
'.ReadOnly = True
.AllowSorting = False
.GridColumnStyles.Clear()
.BackColor = System.Drawing.Color.AliceBlue
.AlternatingBackColor = System.Drawing.Color.MintCream
.HeaderBackColor = System.Drawing.Color.LightGray
.SelectionBackColor = System.Drawing.Color.PaleTurquoise
.SelectionForeColor = System.Drawing.Color.Red
End With
'第0列
bColStyle = New DataGridBoolColumn()
With bColStyle
.AllowNull = False
.HeaderText = "选择"
.Width = 40
.MappingName = MyTable.Columns(0).ColumnName
.Alignment = HorizontalAlignment.Center
End With
TblStyle.GridColumnStyles.Add(bColStyle)
'第1列
ColStyle = New DataGridTextBoxColumn()
With ColStyle
.HeaderText = "期次"
.Width = 50
.ReadOnly = True
.NullText = ""
.MappingName = MyTableSub.Columns(1).ColumnName
.Alignment = HorizontalAlignment.Center
End With
TblStyle.GridColumnStyles.Add(ColStyle)
'第2列
ColStyle = New DataGridTextBoxColumn()
With ColStyle
.HeaderText = "号码"
.Width = 80
.ReadOnly = True
.NullText = ""
.MappingName = MyTableSub.Columns(2).ColumnName
.Alignment = HorizontalAlignment.Center
End With
TblStyle.GridColumnStyles.Add(ColStyle)
'第3列
ColStyle = New DataGridTextBoxColumn()
With ColStyle
.HeaderText = "开奖日期"
.Width = 80
.ReadOnly = True
.NullText = ""
.MappingName = MyTableSub.Columns(3).ColumnName
.Alignment = HorizontalAlignment.Center
End With
TblStyle.GridColumnStyles.Add(ColStyle)
With DataGridSub
.DataSource = MyTableSub
.TableStyles.Add(TblStyle)
.ColumnHeadersVisible = True
End With
End Sub
当然不行了,我有一段代码供你参考吧:
--------------------------------------
Dim TblStyle As New DataGridTableStyle
Dim ColStyle As DataGridColumnStyle
Dim bColStyle As DataGridBoolColumn
Dim tbl As New DataTable
dgd.TableStyles.Clear()
With TblStyle
.ReadOnly = True
.AllowSorting = False
.GridColumnStyles.Clear()
.BackColor = System.Drawing.Color.AliceBlue
.AlternatingBackColor = System.Drawing.Color.MintCream
.HeaderBackColor = System.Drawing.Color.LightGray
.SelectionBackColor = System.Drawing.Color.PaleTurquoise
.SelectionForeColor = System.Drawing.Color.Red
End With
'加入标题
With tbl
.Clear()
.Columns.Add("选择", GetType(Boolean))
.Columns.Add("期次")
.Columns.Add("号码")
.Columns.Add("开奖日期")
End With
'第1列
bColStyle = New DataGridBoolColumn
With bColStyle
.AllowNull = False
.HeaderText = "选择"
.Width = 40
.MappingName = tbl.Columns(0).ColumnName
.Alignment = HorizontalAlignment.Center
End With
TblStyle.GridColumnStyles.Add(bColStyle)
'第1列
ColStyle = New DataGridTextBoxColumn
With ColStyle
.HeaderText = "期次"
.Width = 50
.ReadOnly = True
.NullText = ""
.MappingName = tbl.Columns(1).ColumnName
.Alignment = HorizontalAlignment.Center
End With
TblStyle.GridColumnStyles.Add(ColStyle)
'第2列
ColStyle = New DataGridTextBoxColumn
With ColStyle
.HeaderText = "号码"
.Width = 80
.ReadOnly = True
.NullText = ""
.MappingName = tbl.Columns(2).ColumnName
.Alignment = HorizontalAlignment.Center
End With
TblStyle.GridColumnStyles.Add(ColStyle)
'第3列
ColStyle = New DataGridTextBoxColumn
With ColStyle
.HeaderText = "开奖日期"
.Width = 80
.ReadOnly = True
.NullText = ""
.MappingName = tbl.Columns(3).ColumnName
.Alignment = HorizontalAlignment.Center
End With
TblStyle.GridColumnStyles.Add(ColStyle)
With dgd
.DataSource = tbl
.TableStyles.Add(TblStyle)
.ColumnHeadersVisible = True
End With