| 订阅 | 在线投稿
分享
 
 
 

datagridcolumnstyle重写,实现插入不同控件列体验

来源:互联网网民  宽屏版  评论
2008-06-01 01:14:44

最近谈论较多的就是Datagrid,非凡新手最是郁闷为何没有更好的控件,来满足自已的需求。

其实通过重写可以达到很多不同的功能体验,在这里我们仅仅讨论关于datagridcolumnstyle重写的问题

==========================================

Power by: landlordh

Datatime: 2005-08-04

转载请注明出处,谢谢

==========================================

1。重写TextBox:

Public Class XP_TextBox

Inherits System.Windows.Forms.TextBox

#Region " Windows "

Public Sub New()

MyBase.New()

InitializeComponent()

End Sub

Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)

If disposing Then

If Not (components Is Nothing) Then

components.Dispose()

End If

End If

MyBase.Dispose(disposing)

End Sub

'Windows

Private components As System.ComponentModel.IContainer

<System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()

'

'TextBox

'

Me.EnableContextMenu = True

Me.EnablePaste = True

Me.Name = "TextBox"

End Sub

#End Region

#Region " Variables "

Private m_EnPaste As Boolean = True

Private m_EnContextMenu As Boolean = True

#End Region

#Region " Property "

Property EnablePaste() As Boolean

Get

Return m_EnPaste

End Get

Set(ByVal Value As Boolean)

m_EnPaste = Value

Me.Invalidate()

End Set

End Property

Property EnableContextMenu() As Boolean

Get

Return m_EnContextMenu

End Get

Set(ByVal Value As Boolean)

m_EnContextMenu = Value

Me.Invalidate()

End Set

End Property

#End Region

Protected Overrides Sub WndProc(ByRef m As System.Windows.Forms.Message)

Select Case m.Msg

Case &H302 'paste

RaiseEvent PasteEvent()

If Not m_EnPaste Then Return

Case &H7B 'contextmenu

If Not m_EnContextMenu Then Return

End Select

MyBase.WndProc(m)

End Sub

Public Event PasteEvent()

End Class

2。重写datagridcolumnstyle(重点介绍内容):

Imports System.Drawing

Imports System.Windows.Forms

Public NotInheritable Class DataGridTextBoxColumnStyle

Inherits System.Windows.Forms.DataGridColumnStyle

#Region "Declare Property"

Private WithEvents m_TextBox As New Landlord.Component.XP_TextBox

Private IsEditing As Boolean

Private EditingRow As Integer = -1

Private m_oldvalue As String

#End Region

#Region " windows "

Sub New()

Me.m_TextBox.Visible = False

End Sub

Public Sub New(ByVal Container As System.ComponentModel.IContainer)

MyClass.New()

Container.Add(Me)

End Sub

Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)

If disposing Then

If Not (components Is Nothing) Then

components.Dispose()

End If

End If

MyBase.Dispose(disposing)

End Sub

Private components As System.ComponentModel.IContainer

<System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()

components = New System.ComponentModel.Container

End Sub

#End Region

#Region "Get Function"

Protected Overrides Function GetMinimumHeight() As Integer

Return m_TextBox.PreferredHeight + 2

End Function

Protected Overrides Function GetPreferredHeight(ByVal g As System.Drawing.Graphics, ByVal value As Object) As Integer

Return m_TextBox.PreferredHeight + 2

End Function

Protected Overrides Function GetPreferredSize(ByVal g As System.Drawing.Graphics, ByVal value As Object) As System.Drawing.Size

Return New Size(50, m_TextBox.PreferredHeight + 2)

End Function

#End Region

#Region "Paint"

Protected Overloads Overrides Sub Paint(ByVal g As System.Drawing.Graphics, ByVal bounds As System.Drawing.Rectangle, ByVal [source] As System.Windows.Forms.CurrencyManager, ByVal rowNum As Integer)

Paint(g, bounds, [source], rowNum, False)

End Sub

Protected Overloads Overrides Sub Paint(ByVal g As System.Drawing.Graphics, ByVal bounds As System.Drawing.Rectangle, ByVal [source] As System.Windows.Forms.CurrencyManager, ByVal rowNum As Integer, ByVal alignToRight As Boolean)

Dim brush_for As Brush = New SolidBrush(Me.DataGridTableStyle.ForeColor)

Dim brush_bak As Brush = New SolidBrush(Me.DataGridTableStyle.BackColor)

Paint(g, bounds, [source], rowNum, brush_bak, brush_for, alignToRight)

brush_for.Dispose()

brush_bak.Dispose()

End Sub

Protected Overloads Overrides Sub Paint(ByVal g As System.Drawing.Graphics, ByVal bounds As System.Drawing.Rectangle, ByVal [source] As System.Windows.Forms.CurrencyManager, ByVal rowNum As Integer, ByVal backBrush As Brush, ByVal foreBrush As Brush, ByVal alignToRight As Boolean)

Dim str As String

If IsDBNull(GetColumnValueAtRow([source], rowNum)) Then

str = Me.NullText

Else

str = CType(GetColumnValueAtRow([source], rowNum), String)

End If

Dim brush As Brush = backBrush

Dim rect As System.Drawing.Rectangle = bounds

g.FillRectangle(brush, rect)

If Me.IsEditing And EditingRow = rowNum Then

brush = New SolidBrush(Color.White)

g.FillRectangle(brush, bounds)

End If

rect.Offset(0, 2)

rect.Height -= 2

brush = New SolidBrush(Me.DataGridTableStyle.ForeColor)

If Me.DataGridTableStyle.DataGrid.IsSelected(rowNum) Then

brush = New SolidBrush(Me.DataGridTableStyle.SelectionBackColor)

Dim rectf As RectangleF = New RectangleF(bounds.X, bounds.Y, bounds.Width, bounds.Height)

g.FillRectangle(brush, rectf)

brush = New SolidBrush(Me.DataGridTableStyle.SelectionForeColor)

End If

If Me.Alignment = HorizontalAlignment.Center Then

Dim w As Integer = g.MeasureString(str, Me.DataGridTableStyle.DataGrid.Font, New SizeF(bounds.Width, bounds.Height)).Width

rect.X = rect.X + (bounds.Width - w) / 2

ElseIf Me.Alignment = HorizontalAlignment.Right Then

Dim w As Integer = g.MeasureString(str, Me.DataGridTableStyle.DataGrid.Font, New SizeF(bounds.Width, bounds.Height)).Width

rect.X = bounds.Right - w

End If

g.DrawString(str, Me.DataGridTableStyle.DataGrid.Font, brush, rect.X, rect.Y)

brush.Dispose()

End Sub

#End Region

#Region "Overrides Method"

Protected Overrides Function Commit(ByVal dataSource As System.Windows.Forms.CurrencyManager, ByVal rowNum As Integer) As Boolean

Me.m_TextBox.Bounds = Rectangle.Empty

If Not Me.IsEditing Then

Return True

End If

EditingRow = -1

IsEditing = False

Try

Dim value As Object

value = m_TextBox.Text

If NullText.Equals(value) Then

value = System.DBNull.Value

End If

SetColumnValueAtRow(dataSource, rowNum, value)

Catch ex As Exception

Abort(rowNum)

Return False

End Try

invalidate()

Return True

End Function

Protected Overrides Sub Abort(ByVal rowNum As Integer)

Me.m_TextBox.Text = m_oldvalue

EditingRow = -1

If m_TextBox.Focused Then

Me.DataGridTableStyle.DataGrid.Focus()

End If

Me.m_TextBox.Visible = False

Me.IsEditing = False

Me.Invalidate()

End Sub

Protected Overloads Overrides Sub Edit(ByVal source As System.Windows.Forms.CurrencyManager, ByVal rowNum As Integer, ByVal bounds As System.Drawing.Rectangle, ByVal [readOnly] As Boolean, ByVal instantText As String, ByVal cellIsVisible As Boolean)

EditingRow = rowNum

IsEditing = True

Dim value As String

If IsDBNull(GetColumnValueAtRow(source, rowNum)) Then

value = Me.NullText

Else

value = CType(GetColumnValueAtRow(source, rowNum), String)

End If

m_oldvalue = value

If cellIsVisible Then

If Not Me.ReadOnly Then

Me.m_TextBox.Bounds = New Rectangle(bounds.X + 1, bounds.Y + 1, bounds.Width - 2, bounds.Height - 2)

Me.m_TextBox.Text = value

Me.m_TextBox.Select()

Me.m_TextBox.Focus()

Me.m_TextBox.SelectAll()

Me.m_TextBox.Visible = True

Me.m_TextBox.Flat = True

End If

Else

Me.m_TextBox.Text = value

'滚动时会丢失焦点

'Me.m_TextBox.Visible = False

End If

If Me.m_TextBox.Visible Then

DataGridTableStyle.DataGrid.Invalidate(bounds)

End If

End Sub

Protected Overloads Overrides Sub SetDataGridInColumn(ByVal value As System.Windows.Forms.DataGrid)

MyBase.SetDataGridInColumn(value)

If Not m_TextBox.Parent Is Nothing Then

m_TextBox.Parent.Controls.Remove(Me.m_TextBox)

End If

If Not value Is Nothing Then

value.Controls.Add(Me.m_TextBox)

End If

End Sub

Protected Overrides Sub ConcedeFocus()

EditingRow = -1

'否则先点到新增行,再回选非新行格时该列最后一行的值变为(null)

IsEditing = False

Me.m_TextBox.Visible = False

invalidate()

End Sub

Protected Overrides Sub EnterNullValue()

Me.m_TextBox.Text = Me.NullText

End Sub

Private Sub m_TextBox_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles m_TextBox.KeyPress

If Not Char.IsControl(e.KeyChar) Then

Me.IsEditing = True

MyBase.ColumnStartedEditing(m_TextBox)

End If

End Sub

Private Sub m_TextBox_PasteEvent() Handles m_TextBox.PasteEvent

Me.IsEditing = True

Me.ColumnStartedEditing(m_TextBox)

End Sub

#End Region

End Class

3。使用:

新建一个空窗体,拖入datagrid,窗体load事件中代码如下

Private idtb_temp As New DataTable

Private Sub form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

idtb_temp = New DataTable("NameTable")

idtb_temp.Columns.Add(New DataColumn("normal"))

idtb_temp.Columns.Add(New DataColumn("textbox1"))

idtb_temp.Columns.Add(New DataColumn("combobox1"))

Dim dateColumns As DataColumn

dateColumns = New DataColumn("datetime1", Type.GetType("System.DateTime"))

idtb_temp.Columns.Add(dateColumns)

idtb_temp.Columns.Add(New DataColumn("checkbox1", Type.GetType("System.Boolean")))

Dim idrw_row As DataRow

Dim i As Integer

For i = 0 To 20

idrw_row = idtb_temp.NewRow

idrw_row.Item("normal") = "names"

idrw_row.Item("textbox1") = "nick"

idrw_row.Item("combobox1") = i.ToString

idrw_row.Item("datetime1") = "2004-06-04"

idrw_row.Item("checkbox1") = True

idtb_temp.Rows.Add(idrw_row)

Next

Me.DataGrid1.DataSource = idtb_temp

Dim myGridStyle As Windows.Forms.DataGridTableStyle = New Windows.Forms.DataGridTableStyle

myGridStyle.MappingName = "NameTable"

myGridStyle.PreferredRowHeight = 30

myGridStyle.SelectionBackColor = Color.Blue

myGridStyle.BackColor = Color.Yellow

Dim c1 As Windows.Forms.DataGridTextBoxColumn = New Windows.Forms.DataGridTextBoxColumn

With c1

.MappingName = "normal"

.Width = 100

.HeaderText = "normal"

.Alignment = HorizontalAlignment.Center

End With

myGridStyle.GridColumnStyles.Add(c1)

Dim c2 As Landlord.Component.DragGrid.DataGridTextBoxColumnStyle = New Landlord.Component.DragGrid.DataGridTextBoxColumnStyle

With c2

.MappingName = "textbox1"

.Width = 100

.HeaderText = "textbox1"

End With

myGridStyle.GridColumnStyles.Add(c2)

Dim c3 As Landlord.Component.DragGrid.DataGridComboBoxColumnStyle = New Landlord.Component.DragGrid.DataGridComboBoxColumnStyle

With c3

.MappingName = "combobox1"

.HeaderText = "combobox1"

.Width = 100

.AddItem("111")

.AddItem("222")

.Alignment = HorizontalAlignment.Center

End With

myGridStyle.GridColumnStyles.Add(c3)

Dim c4 As Landlord.Component.DragGrid.DataGridDateTimePickerColumnStyle = New Landlord.Component.DragGrid.DataGridDateTimePickerColumnStyle

With c4

.MappingName = "datetime1"

.HeaderText = "datetime1"

.Width = "100"

.Alignment = HorizontalAlignment.Center

End With

myGridStyle.GridColumnStyles.Add(c4)

Dim c5 As Landlord.Component.DragGrid.DataGridCheckBoxColumnStyle = New Landlord.Component.DragGrid.DataGridCheckBoxColumnStyle

With c5

.MappingName = "checkbox1"

.HeaderText = "checkbox1"

.Width = 100

.TrueColor = Color.Red

End With

myGridStyle.GridColumnStyles.Add(c5)

Me.DataGrid1.TableStyles.Clear()

Me.DataGrid1.TableStyles.Add(myGridStyle)

End Sub

4。说明:

其他控件的加入原理基本一样,这里就不重复了

 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
最近谈论较多的就是Datagrid,非凡新手最是郁闷为何没有更好的控件,来满足自已的需求。 其实通过重写可以达到很多不同的功能体验,在这里我们仅仅讨论关于datagridcolumnstyle重写的问题 ========================================== Power by: landlordh Datatime: 2005-08-04 转载请注明出处,谢谢 ========================================== 1。重写TextBox: Public Class XP_TextBox Inherits System.Windows.Forms.TextBox #Region " Windows " Public Sub New() MyBase.New() InitializeComponent() End Sub Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean) If disposing Then If Not (components Is Nothing) Then components.Dispose() End If End If MyBase.Dispose(disposing) End Sub 'Windows Private components As System.ComponentModel.IContainer <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent() ' 'TextBox ' Me.EnableContextMenu = True Me.EnablePaste = True Me.Name = "TextBox" End Sub #End Region #Region " Variables " Private m_EnPaste As Boolean = True Private m_EnContextMenu As Boolean = True #End Region #Region " Property " Property EnablePaste() As Boolean Get Return m_EnPaste End Get Set(ByVal Value As Boolean) m_EnPaste = Value Me.Invalidate() End Set End Property Property EnableContextMenu() As Boolean Get Return m_EnContextMenu End Get Set(ByVal Value As Boolean) m_EnContextMenu = Value Me.Invalidate() End Set End Property #End Region Protected Overrides Sub WndProc(ByRef m As System.Windows.Forms.Message) Select Case m.Msg Case &H302 'paste RaiseEvent PasteEvent() If Not m_EnPaste Then Return Case &H7B 'contextmenu If Not m_EnContextMenu Then Return End Select MyBase.WndProc(m) End Sub Public Event PasteEvent() End Class 2。重写datagridcolumnstyle(重点介绍内容): Imports System.Drawing Imports System.Windows.Forms Public NotInheritable Class DataGridTextBoxColumnStyle Inherits System.Windows.Forms.DataGridColumnStyle #Region "Declare Property" Private WithEvents m_TextBox As New Landlord.Component.XP_TextBox Private IsEditing As Boolean Private EditingRow As Integer = -1 Private m_oldvalue As String #End Region #Region " windows " Sub New() Me.m_TextBox.Visible = False End Sub Public Sub New(ByVal Container As System.ComponentModel.IContainer) MyClass.New() Container.Add(Me) End Sub Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean) If disposing Then If Not (components Is Nothing) Then components.Dispose() End If End If MyBase.Dispose(disposing) End Sub Private components As System.ComponentModel.IContainer <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent() components = New System.ComponentModel.Container End Sub #End Region #Region "Get Function" Protected Overrides Function GetMinimumHeight() As Integer Return m_TextBox.PreferredHeight + 2 End Function Protected Overrides Function GetPreferredHeight(ByVal g As System.Drawing.Graphics, ByVal value As Object) As Integer Return m_TextBox.PreferredHeight + 2 End Function Protected Overrides Function GetPreferredSize(ByVal g As System.Drawing.Graphics, ByVal value As Object) As System.Drawing.Size Return New Size(50, m_TextBox.PreferredHeight + 2) End Function #End Region #Region "Paint" Protected Overloads Overrides Sub Paint(ByVal g As System.Drawing.Graphics, ByVal bounds As System.Drawing.Rectangle, ByVal [source] As System.Windows.Forms.CurrencyManager, ByVal rowNum As Integer) Paint(g, bounds, [source], rowNum, False) End Sub Protected Overloads Overrides Sub Paint(ByVal g As System.Drawing.Graphics, ByVal bounds As System.Drawing.Rectangle, ByVal [source] As System.Windows.Forms.CurrencyManager, ByVal rowNum As Integer, ByVal alignToRight As Boolean) Dim brush_for As Brush = New SolidBrush(Me.DataGridTableStyle.ForeColor) Dim brush_bak As Brush = New SolidBrush(Me.DataGridTableStyle.BackColor) Paint(g, bounds, [source], rowNum, brush_bak, brush_for, alignToRight) brush_for.Dispose() brush_bak.Dispose() End Sub Protected Overloads Overrides Sub Paint(ByVal g As System.Drawing.Graphics, ByVal bounds As System.Drawing.Rectangle, ByVal [source] As System.Windows.Forms.CurrencyManager, ByVal rowNum As Integer, ByVal backBrush As Brush, ByVal foreBrush As Brush, ByVal alignToRight As Boolean) Dim str As String If IsDBNull(GetColumnValueAtRow([source], rowNum)) Then str = Me.NullText Else str = CType(GetColumnValueAtRow([source], rowNum), String) End If Dim brush As Brush = backBrush Dim rect As System.Drawing.Rectangle = bounds g.FillRectangle(brush, rect) If Me.IsEditing And EditingRow = rowNum Then brush = New SolidBrush(Color.White) g.FillRectangle(brush, bounds) End If rect.Offset(0, 2) rect.Height -= 2 brush = New SolidBrush(Me.DataGridTableStyle.ForeColor) If Me.DataGridTableStyle.DataGrid.IsSelected(rowNum) Then brush = New SolidBrush(Me.DataGridTableStyle.SelectionBackColor) Dim rectf As RectangleF = New RectangleF(bounds.X, bounds.Y, bounds.Width, bounds.Height) g.FillRectangle(brush, rectf) brush = New SolidBrush(Me.DataGridTableStyle.SelectionForeColor) End If If Me.Alignment = HorizontalAlignment.Center Then Dim w As Integer = g.MeasureString(str, Me.DataGridTableStyle.DataGrid.Font, New SizeF(bounds.Width, bounds.Height)).Width rect.X = rect.X + (bounds.Width - w) / 2 ElseIf Me.Alignment = HorizontalAlignment.Right Then Dim w As Integer = g.MeasureString(str, Me.DataGridTableStyle.DataGrid.Font, New SizeF(bounds.Width, bounds.Height)).Width rect.X = bounds.Right - w End If g.DrawString(str, Me.DataGridTableStyle.DataGrid.Font, brush, rect.X, rect.Y) brush.Dispose() End Sub #End Region #Region "Overrides Method" Protected Overrides Function Commit(ByVal dataSource As System.Windows.Forms.CurrencyManager, ByVal rowNum As Integer) As Boolean Me.m_TextBox.Bounds = Rectangle.Empty If Not Me.IsEditing Then Return True End If EditingRow = -1 IsEditing = False Try Dim value As Object value = m_TextBox.Text If NullText.Equals(value) Then value = System.DBNull.Value End If SetColumnValueAtRow(dataSource, rowNum, value) Catch ex As Exception Abort(rowNum) Return False End Try invalidate() Return True End Function Protected Overrides Sub Abort(ByVal rowNum As Integer) Me.m_TextBox.Text = m_oldvalue EditingRow = -1 If m_TextBox.Focused Then Me.DataGridTableStyle.DataGrid.Focus() End If Me.m_TextBox.Visible = False Me.IsEditing = False Me.Invalidate() End Sub Protected Overloads Overrides Sub Edit(ByVal source As System.Windows.Forms.CurrencyManager, ByVal rowNum As Integer, ByVal bounds As System.Drawing.Rectangle, ByVal [readOnly] As Boolean, ByVal instantText As String, ByVal cellIsVisible As Boolean) EditingRow = rowNum IsEditing = True Dim value As String If IsDBNull(GetColumnValueAtRow(source, rowNum)) Then value = Me.NullText Else value = CType(GetColumnValueAtRow(source, rowNum), String) End If m_oldvalue = value If cellIsVisible Then If Not Me.ReadOnly Then Me.m_TextBox.Bounds = New Rectangle(bounds.X + 1, bounds.Y + 1, bounds.Width - 2, bounds.Height - 2) Me.m_TextBox.Text = value Me.m_TextBox.Select() Me.m_TextBox.Focus() Me.m_TextBox.SelectAll() Me.m_TextBox.Visible = True Me.m_TextBox.Flat = True End If Else Me.m_TextBox.Text = value '滚动时会丢失焦点 'Me.m_TextBox.Visible = False End If If Me.m_TextBox.Visible Then DataGridTableStyle.DataGrid.Invalidate(bounds) End If End Sub Protected Overloads Overrides Sub SetDataGridInColumn(ByVal value As System.Windows.Forms.DataGrid) MyBase.SetDataGridInColumn(value) If Not m_TextBox.Parent Is Nothing Then m_TextBox.Parent.Controls.Remove(Me.m_TextBox) End If If Not value Is Nothing Then value.Controls.Add(Me.m_TextBox) End If End Sub Protected Overrides Sub ConcedeFocus() EditingRow = -1 '否则先点到新增行,再回选非新行格时该列最后一行的值变为(null) IsEditing = False Me.m_TextBox.Visible = False invalidate() End Sub Protected Overrides Sub EnterNullValue() Me.m_TextBox.Text = Me.NullText End Sub Private Sub m_TextBox_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles m_TextBox.KeyPress If Not Char.IsControl(e.KeyChar) Then Me.IsEditing = True MyBase.ColumnStartedEditing(m_TextBox) End If End Sub Private Sub m_TextBox_PasteEvent() Handles m_TextBox.PasteEvent Me.IsEditing = True Me.ColumnStartedEditing(m_TextBox) End Sub #End Region End Class 3。使用: 新建一个空窗体,拖入datagrid,窗体load事件中代码如下 Private idtb_temp As New DataTable Private Sub form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load idtb_temp = New DataTable("NameTable") idtb_temp.Columns.Add(New DataColumn("normal")) idtb_temp.Columns.Add(New DataColumn("textbox1")) idtb_temp.Columns.Add(New DataColumn("combobox1")) Dim dateColumns As DataColumn dateColumns = New DataColumn("datetime1", Type.GetType("System.DateTime")) idtb_temp.Columns.Add(dateColumns) idtb_temp.Columns.Add(New DataColumn("checkbox1", Type.GetType("System.Boolean"))) Dim idrw_row As DataRow Dim i As Integer For i = 0 To 20 idrw_row = idtb_temp.NewRow idrw_row.Item("normal") = "names" idrw_row.Item("textbox1") = "nick" idrw_row.Item("combobox1") = i.ToString idrw_row.Item("datetime1") = "2004-06-04" idrw_row.Item("checkbox1") = True idtb_temp.Rows.Add(idrw_row) Next Me.DataGrid1.DataSource = idtb_temp Dim myGridStyle As Windows.Forms.DataGridTableStyle = New Windows.Forms.DataGridTableStyle myGridStyle.MappingName = "NameTable" myGridStyle.PreferredRowHeight = 30 myGridStyle.SelectionBackColor = Color.Blue myGridStyle.BackColor = Color.Yellow Dim c1 As Windows.Forms.DataGridTextBoxColumn = New Windows.Forms.DataGridTextBoxColumn With c1 .MappingName = "normal" .Width = 100 .HeaderText = "normal" .Alignment = HorizontalAlignment.Center End With myGridStyle.GridColumnStyles.Add(c1) Dim c2 As Landlord.Component.DragGrid.DataGridTextBoxColumnStyle = New Landlord.Component.DragGrid.DataGridTextBoxColumnStyle With c2 .MappingName = "textbox1" .Width = 100 .HeaderText = "textbox1" End With myGridStyle.GridColumnStyles.Add(c2) Dim c3 As Landlord.Component.DragGrid.DataGridComboBoxColumnStyle = New Landlord.Component.DragGrid.DataGridComboBoxColumnStyle With c3 .MappingName = "combobox1" .HeaderText = "combobox1" .Width = 100 .AddItem("111") .AddItem("222") .Alignment = HorizontalAlignment.Center End With myGridStyle.GridColumnStyles.Add(c3) Dim c4 As Landlord.Component.DragGrid.DataGridDateTimePickerColumnStyle = New Landlord.Component.DragGrid.DataGridDateTimePickerColumnStyle With c4 .MappingName = "datetime1" .HeaderText = "datetime1" .Width = "100" .Alignment = HorizontalAlignment.Center End With myGridStyle.GridColumnStyles.Add(c4) Dim c5 As Landlord.Component.DragGrid.DataGridCheckBoxColumnStyle = New Landlord.Component.DragGrid.DataGridCheckBoxColumnStyle With c5 .MappingName = "checkbox1" .HeaderText = "checkbox1" .Width = 100 .TrueColor = Color.Red End With myGridStyle.GridColumnStyles.Add(c5) Me.DataGrid1.TableStyles.Clear() Me.DataGrid1.TableStyles.Add(myGridStyle) End Sub 4。说明: 其他控件的加入原理基本一样,这里就不重复了
󰈣󰈤
 
 
 
>>返回首页<<
 
 热帖排行
 
 
静静地坐在废墟上,四周的荒凉一望无际,忽然觉得,凄凉也很美
©2005- 王朝网络 版权所有