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

时间:2010-03-16 17:38:21  来源:第二电脑网  作者:第二电脑网

  第二电脑网导读:,题目是《Henry手记:WinForm Datagrid结构剖析》,作者是韩睿(Latitude),其中介绍了WIN DG的颜色的定义,但是主要是针对每一个Cell的。      我们需要的则是标记某一行的数据,用颜色突出显示,所以作了部分改动,现在把部分代码张贴出来供大家参考:      1. 基础类出自韩睿:     &...
  正文:近来项目用到了一个类似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/ target=_blank class=infotextkey>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 "VB.NET中关于DataGrid颜色的自定义"由第二电脑网原创提供,转载请注明:http://www.002pc.com/master/College/Programming/aspnet/13250.html


关键字:

关于《VB.NET中关于DataGrid颜色的自定义》文章的评论

站内搜索: 高级搜索

热门搜索: Windows style 系统 tr IP QQ CPU 安装 function 注册 if td