打印本文 打印本文 关闭窗口 关闭窗口
VB.NET中关于DataGrid颜色的自定义。
作者:武汉SEO闵涛  文章来源:敏韬网  点击数3906  更新时间:2009/4/23 19:01:50  文章录入:mintao  责任编辑:mintao

 

     近来项目用到了一个类似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

 

[1] [2] [3] [4]  下一页

打印本文 打印本文 关闭窗口 关闭窗口