当前位置:首页 > 网络编程 > WEB编程 > ASP.net >  VB.NET中关于DataGrid颜色的自定义

 VB.NET中关于DataGrid颜色的自定义

点击次数:13 次 发布日期:2008-11-26 11:14:04 作者:源代码网
源代码网推荐      近来项目用到了一个类似WEB控件DataGrid中自定义行或列的颜色的功能,然而应用却是在WIN的窗体下,实现起来无法使用类似JavaScript的脚本注册的功能来动态完成,十分着急,察看了CSDN的一些关于WinForm下的关于DataGrid的资料,看到这样的一篇介绍DG结构的美文,题目是《Henry手记:WinForm Datagrid结构剖析》,作者是韩睿(Latitude),其中介绍了WIN DG的颜色的定义,但是主要是针对每一个Cell的。
源代码网推荐  
源代码网推荐  我们需要的则是标记某一行的数据,用颜色突出显示,所以作了部分改动,现在把部分代码张贴出来供大家参考:
源代码网推荐  
源代码网推荐  1. 基础类出自韩睿:
源代码网推荐  
源代码网推荐  URL: http://www.csdn.net/develop/read_article.asp?id=15686
源代码网推荐  
源代码网推荐   Public Class DataGridColoredTextBoxColumn
源代码网推荐  
源代码网推荐  
源代码网推荐  
源代码网推荐   Inherits DataGridTextBoxColumn
源代码网推荐  
源代码网推荐  
源代码网推荐  
源代码网推荐   Public rowcollection As New Collection()
源代码网推荐  
源代码网推荐  
源代码网推荐  
源代码网推荐   Public BackColor() As Color
源代码网推荐  
源代码网推荐  
源代码网推荐  
源代码网推荐   Public ForeColor() As Color
源代码网推荐  
源代码网推荐  
源代码网推荐  
源代码网推荐  
源代码网推荐  
源代码网推荐   Private Function GetText(ByVal Value As Object) As String
源代码网推荐  
源代码网推荐   If TypeOf (Value) Is System.DBNull Then
源代码网推荐  
源代码网推荐   Return NullText
源代码网推荐  
源代码网推荐   ElseIf Value Is Nothing Then
源代码网推荐  
源代码网推荐   Return ""
源代码网推荐  
源代码网推荐   Else
源代码网推荐  
源代码网推荐   Return Value.ToString
源代码网推荐  
源代码网推荐   End If
源代码网推荐  
源代码网推荐   End Function
源代码网推荐  
源代码网推荐  
源代码网推荐  
源代码网推荐   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 System.Drawing.Brush, _
源代码网推荐  
源代码网推荐   ByVal foreBrush As System.Drawing.Brush, _
源代码网推荐  
源代码网推荐   ByVal alignToRight As Boolean)
源代码网推荐  
源代码网推荐  
源代码网推荐  
源代码网推荐  
源代码网推荐  
源代码网推荐   Dim text As String
源代码网推荐  
源代码网推荐  
源代码网推荐  
源代码网推荐   text = GetText(GetColumnValueAtRow(source, rowNum))
源代码网推荐  
源代码网推荐  
源代码网推荐  
源代码网推荐   backBrush = New SolidBrush(TextBox.BackColor)
源代码网推荐  
源代码网推荐  
源代码网推荐  
源代码网推荐   foreBrush = New SolidBrush(TextBox.ForeColor)
源代码网推荐  
源代码网推荐  
源代码网推荐  
源代码网推荐  
源代码网推荐  
源代码网推荐   ReDim Preserve BackColor(rowcollection.Count)
源代码网推荐  
源代码网推荐  
源代码网推荐  
源代码网推荐   ReDim Preserve ForeColor(rowcollection.Count)
源代码网推荐  
源代码网推荐  
源代码网推荐  
源代码网推荐  
源代码网推荐  
源代码网推荐  
源代码网推荐  
源代码网推荐   Dim i As Integer = 1
源代码网推荐  
源代码网推荐  
源代码网推荐  
源代码网推荐   Do While (i <= rowcollection.Count)
源代码网推荐  
源代码网推荐  
源代码网推荐  
源代码网推荐   If rowNum = Val(rowcollection.Item(i)) Then
源代码网推荐  
源代码网推荐  
源代码网推荐  
源代码网推荐   If Not BackColor(i - 1).IsEmpty Then
源代码网推荐  
源代码网推荐  
源代码网推荐  
源代码网推荐   backBrush = New SolidBrush(BackColor(i - 1))
源代码网推荐  
源代码网推荐  
源代码网推荐  
源代码网推荐   End If
源代码网推荐  
源代码网推荐  
源代码网推荐  
源代码网推荐   If Not ForeColor(i - 1).IsEmpty Then
源代码网推荐  
源代码网推荐  
源代码网推荐  
源代码网推荐   foreBrush = New SolidBrush(ForeColor(i - 1))
源代码网推荐  
源代码网推荐  
源代码网推荐  
源代码网推荐   End If
源代码网推荐  
源代码网推荐  
源代码网推荐  
源代码网推荐   End If
源代码网推荐  
源代码网推荐  
源代码网推荐  
源代码网推荐   i += 1
源代码网推荐  
源代码网推荐  
源代码网推荐  
源代码网推荐   Loop
源代码网推荐  
源代码网推荐  
源代码网推荐  
源代码网推荐   MyBase.PaintText(g, bounds, text, backBrush, foreBrush, alignToRight)
源代码网推荐  
源代码网推荐  
源代码网推荐  
源代码网推荐   End Sub
源代码网推荐  
源代码网推荐  
源代码网推荐  
源代码网推荐   End Class
源代码网推荐  
源代码网推荐  
源代码网推荐  
源代码网推荐  
源代码网推荐  
源代码网推荐  2.关于行颜色定义的类:
源代码网推荐  
源代码网推荐  Imports System.Windows.Forms
源代码网推荐  
源代码网推荐  Namespace Truck_WEB
源代码网推荐  
源代码网推荐  
源代码网推荐  
源代码网推荐   Public Class DrawDGClass
源代码网推荐  
源代码网推荐  
源代码网推荐  
源代码网推荐   Public Class ReDrawDataDridControls : Inherits DataGridColoredTextBoxColumn
源代码网推荐  
源代码网推荐  
源代码网推荐  
源代码网推荐   Public Sub DrawCorol(ByRef DG As DataGrid, Optional ByVal CurrentRowindex As Integer = 0)
源代码网推荐  
源代码网推荐   "设置选中的行的颜色,默认是第一行选中。
源代码网推荐  
源代码网推荐   Dim dt As DataTable
源代码网推荐  
源代码网推荐   Dim ts As New DataGridTableStyle()
源代码网推荐  
源代码网推荐   ts.AllowSorting = False
源代码网推荐  
源代码网推荐   Dim aColumnTextColumn As DataGridColoredTextBoxColumn
源代码网推荐  
源代码网推荐   dt = CType(DG.DataSource, DataTable)
源代码网推荐  
源代码网推荐   ts.MappingName = CType(DG.DataSource, DataTable).TableName
源代码网推荐  
源代码网推荐   DG.TableStyles.Clear()
源代码网推荐  
源代码网推荐   Dim numCols As Integer
源代码网推荐  
源代码网推荐   numCols = dt.Columns.Count
源代码网推荐  
源代码网推荐   Dim i, j As Integer
源代码网推荐  
源代码网推荐   i = 0
源代码网推荐  
源代码网推荐   j = 0
源代码网推荐  
源代码网推荐  
源代码网推荐  
源代码网推荐   Do While (i < numCols)
源代码网推荐  
源代码网推荐  
源代码网推荐  
源代码网推荐   aColumnTextColumn = New DataGridColoredTextBoxColumn()
源代码网推荐  
源代码网推荐  
源代码网推荐  
源代码网推荐   Dim rowindex As Integer = 0
源代码网推荐  
源代码网推荐  
源代码网推荐  
源代码网推荐  
源代码网推荐  
源代码网推荐   For rowindex = 0 To dt.Rows.Count - 1
源代码网推荐  
源代码网推荐   Dim StrSel As String
源代码网推荐  
源代码网推荐   Dim MyForeCorol, MyBackCorol As Color
源代码网推荐  
源代码网推荐   aColumnTextColumn.rowcollection.Add(rowindex)
源代码网推荐  
源代码网推荐   If rowindex = CurrentRowindex Then
源代码网推荐  
源代码网推荐   MyForeCorol = Color.White
源代码网推荐  
源代码网推荐   MyBackCorol = Color.DarkSlateBlue
源代码网推荐  
源代码网推荐   else
源代码网推荐  
源代码网推荐  
源代码网推荐  
源代码网推荐   MyForeCorol = Color.DarkSlateBlue
源代码网推荐  
源代码网推荐   MyBackCorol = Color.White
源代码网推荐  
源代码网推荐   End If
源代码网推荐  
源代码网推荐  
源代码网推荐  
源代码网推荐   ReDim Preserve aColumnTextColumn.ForeColor(aColumnTextColumn.rowcollection.Count)
源代码网推荐  
源代码网推荐   ReDim Preserve aColumnTextColumn.BackColor(aColumnTextColumn.rowcollection.Count)
源代码网推荐  
源代码网推荐   aColumnTextColumn.ForeColor(rowindex) = MyForeCorol
源代码网推荐  
源代码网推荐   aColumnTextColumn.BackColor(rowindex) = MyBackCorol
源代码网推荐  
源代码网推荐   Next
源代码网推荐  
源代码网推荐  
源代码网推荐  
源代码网推荐  
源代码网推荐  
源代码网推荐   "要更改列头名,请改下句的HeaderText值
源代码网推荐  
源代码网推荐   aColumnTextColumn.HeaderText = dt.Columns(i).ColumnName
源代码网推荐  
源代码网推荐  
源代码网推荐  
源代码网推荐   aColumnTextColumn.MappingName = dt.Columns(i).ColumnName
源代码网推荐  
源代码网推荐  
源代码网推荐  
源代码网推荐   ts.GridColumnStyles.Add(aColumnTextColumn)
源代码网推荐  
源代码网推荐   i = (i + 1)
源代码网推荐  
源代码网推荐   Loop
源代码网推荐  
源代码网推荐   DG.TableStyles.Add(ts)
源代码网推荐  
源代码网推荐  
源代码网推荐  
源代码网推荐   End Sub
源代码网推荐  
源代码网推荐   End Class
源代码网推荐  
源代码网推荐   End Class
源代码网推荐  
源代码网推荐  End Namespace
源代码网推荐  
源代码网推荐  
源代码网推荐  
源代码网推荐  
源代码网推荐  
源代码网推荐  以上是设定选中单行的颜色为反色,各位还可以借题发挥一下!例如设置颜色,等等。
源代码网推荐  
源代码网推荐  在此向《Henry手记:WinForm Datagrid结构剖析》的作者韩睿致谢!
源代码网推荐  
源代码网推荐  
源代码网推荐  
源代码网推荐  以后我会尽量完善这个DrawDG的类,为大家提供方便!  做人要厚道,请注明转自酷网动力(www.ASPCOOL.COM)。
源代码网推荐


源代码网供稿.
网友评论 (0)
会员中心
网络编程
本站推荐
网络编程之精华