Mungkin rekan rekan .Net mungkin punya yang lebih bagus tolong beritahu yach....
Option Explicit On
Public
Class ComDataGridBoolColumn
Inherits System.Windows.Forms.DataGridBoolColumn
Public Sub New(ByVal sMappingName As String, ByVal sHeaderText As String, ByVal iColWidth As Integer, ByVal iMaxLength As Integer, ByVal sAlignment As String, ByVal bIsReadOnly As Boolean)
MyBase.MappingName = sMappingName
MyBase.HeaderText = sHeaderText
MyBase.Width = iColWidth
MyBase.AllowNull = True
MyBase.NullValue = False
MyBase.Alignment = sAlignment
MyBase.ReadOnly = bIsReadOnly
End Sub
Protected Overloads Overrides Sub Paint(ByVal g As Graphics, ByVal bounds As Rectangle, ByVal source As CurrencyManager, ByVal rowNum As Integer, ByVal backBrush As Brush, ByVal foreBrush As Brush, ByVal alignToRight As Boolean)
If rowNum Mod 2 = 0 Then
backBrush = Brushes.LightGoldenrodYellow
End If
MyBase.Paint(g, bounds, source, rowNum, backBrush, foreBrush, alignToRight)
End Sub
End
Class
Option Strict Off
Option Explicit On
Public Class ComDataGridBoolColumn
Inherits System.Windows.Forms.DataGridBoolColumn
Public Sub New(ByVal sMappingName As String, ByVal sHeaderText As String, ByVal iColWidth As Integer, ByVal iMaxLength As Integer, ByVal sAlignment As String, ByVal bIsReadOnly As Boolean)
MyBase.MappingName = sMappingName
MyBase.HeaderText = sHeaderText
MyBase.Width = iColWidth
MyBase.AllowNull = True
MyBase.NullValue = False
MyBase.Alignment = sAlignment
MyBase.ReadOnly = bIsReadOnly
End Sub
Protected Overloads Overrides Sub Paint(ByVal g As Graphics, ByVal bounds As Rectangle, ByVal source As CurrencyManager, ByVal rowNum As Integer, ByVal backBrush As Brush, ByVal foreBrush As Brush, ByVal alignToRight As Boolean)
If rowNum Mod 2 = 0 Then ''' -> di sini bila yang genap maka di warnai dengan warna Brushes.LightGoldenrodYellow
backBrush = Brushes.LightGoldenrodYellow
End If
MyBase.Paint(g, bounds, source, rowNum, backBrush, foreBrush, alignToRight)
End Sub
End Class
2. Control ComDatagridTextBoxColumn.vb
Option Strict Off
Option Explicit On
Public Class ComDatagridTextBoxColumn
Inherits System.Windows.Forms.DataGridTextBoxColumn
Public Sub New(ByVal sMappingName As String, ByVal sHeaderText As String, ByVal iColWidth As Integer, ByVal iMaxLength As Integer, ByVal sFormat As String, ByVal sAlignment As String, ByVal bIsReadOnly As Boolean)
MyBase.MappingName = sMappingName
MyBase.HeaderText = sHeaderText
MyBase.Width = iColWidth
MyBase.TextBox.MaxLength = iMaxLength
MyBase.Format = sFormat
MyBase.Alignment = sAlignment
MyBase.ReadOnly = bIsReadOnly
MyBase.TextBox.Enabled = False
MyBase.NullText = ""
End Sub
Protected Overloads Overrides Sub Paint(ByVal g As Graphics, ByVal bounds As Rectangle, ByVal source As CurrencyManager, ByVal rowNum As Integer, ByVal backBrush As Brush, ByVal foreBrush As Brush, ByVal alignToRight As Boolean)
If rowNum Mod 2 = 0 Then ''' -> di sini bila yang genap maka di warnai dengan warna Brushes.LightGoldenrodYellow
backBrush = Brushes.LightGoldenrodYellow
End If
MyBase.Paint(g, bounds, source, rowNum, backBrush, foreBrush, alignToRight)
End Sub
End Class
-------------------------------
Cara penggunaannya :
Public Sub InitData()
Dim oDpt As SqlDataAdapter = Nothing
Dim oDgts As DataGridTableStyle
Try
DataGrid1.DataSource =
oDgts.MappingName =
'Ini salah satu sample penggunaannya
oDgts.GridColumnStyles.Add(New ComDatagridTextBoxColumn("StockItemCode", "Stock Code", 80, 20, String.Empty, Convert.ToString(HorizontalAlignment.Left), False))
oDgts.GridColumnStyles.Add(New ComDatagridTextBoxColumn("ItemName", "Stock Name", 200, 20, String.Empty, Convert.ToString(HorizontalAlignment.Left), False))
Me.DataGrid1.TableStyles.Clear()
Me.DataGrid1.TableStyles.Add(oDgts)
Catch ex As Exception
MessageBox.Show(ex.Message, Me.Name & ",InitData")
Finally
oDgts = Nothing
If Not (oDpt Is Nothing) Then oDpt = Nothing
End Try
End Sub