重绘datagrid,包括强迫显示某行

王朝other·作者佚名  2006-11-24
窄屏简体版  字體: |||超大  

#Region "用来对DataGrid的显示样式进行重绘"

Private Sub FormatGridWithTableStyles()

Dim ts As New DataGridTableStyle '就是它决定了datagrid是什么样的

Dim aColumnTextColumn As DataGridTextBoxColumn '要重写的东东

ts.MappingName = datagridTable.TableName

Dim numCols As Integer

numCols = datagridTable.Columns.Count

Dim i As Integer = 0

Do While (i < numCols) '重绘所有的列

aColumnTextColumn = New DataGridTextBoxColumn

'夺过对textbox内落下光标的控制权

AddHandler aColumnTextColumn.TextBox.Enter, New EventHandler(AddressOf TextBoxEnterHandler)

'要更改列头名,请改下句的HeaderText值

aColumnTextColumn.HeaderText = datagridTable.Columns(i).ColumnName

'更改列的实际内容

aColumnTextColumn.MappingName = datagridTable.Columns(i).ColumnName

'自动改变行宽不对

aColumnTextColumn.TextBox.AutoSize = True

'MsgBox(aColumnTextColumn.HeaderText.ToString)

'Debug.Write(aColumnTextColumn.TextBox.Width & "aa")

'自动改变行宽不对

aColumnTextColumn.TextBox.AutoSize = True

ts.PreferredColumnWidth = aColumnTextColumn.TextBox.Width()

ts.GridColumnStyles.Add(aColumnTextColumn) '增加一种自定义的column风格

i = (i + 1)

Loop

DataGrid1.TableStyles.Clear()

DataGrid1.TableStyles.Add(ts) '增加一种自定义的表风格

End Sub

#End Region

#Region "当点击时强迫datagrid选中某行,而不是某行某列"

Private Sub TextBoxEnterHandler(ByVal sender As Object, ByVal e As System.EventArgs)

Dim inner As Control = sender

inner.Visible = False

DataGrid1.Select(DataGrid1.CurrentRowIndex)

End Sub

#End Region

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航