linux社区爱心援助Linux认证系列教程业界动态站务新闻公司招聘网络学院网址大全LPI专题CISCO专题
设为首页
加入收藏
管理团队
JSP  
JAVA  
PERL  
 您的位置:首页 > 开发语言 > asp.net >
栏目导栏
  php
  JSP
  ASP
  asp.net
  JAVA
  c/c++/c#
  perl
  JavaScript
  Basic
  Delphi
资料搜索
热门文章
·NetBPM工作流的一个示例:请假
·Office Web Components(OWC)绘
·asp.net正则表达式语法
·asp.net 2.0 ajax中使用PopupC
·Ado.Net读取Excel常见问题总结
·数据源为空时如何让GridView显
·如何让UpdatePanel支持文件上传
·C#.Net的常见面试试题和参考答
·asp.net ajax客户端编程+jquer
·Brettle.Web.NeatUpload.dll支
·ASP.NET使用Cookie
·ASP.NET DEMO 15: 同时支持行单
·如何使IE的后退按钮无效
·如何在ASP.NET中用OWC绘制图表
·asp.net:正确判断当前用户角色
最新文章
·Ajax Control Toolkit Animati
·讨论一下类似BlogEngine内一次
·使用CSS+SiteMap+UserControl+
·Asp.net中多彩下拉框的实现
·浅谈ASP.NET的Postback
·分清ASP.NET AJAX中的Extender
·Tip:在使用AjaxControlTookit
·有关注册DataItem的一些可能被
·IIRF(Ionic's Isapi Rewrite
·asp.net 客户端回调功能的实现
·关于控件部分的看法--读Progra
·为什么在vista上做开发
·如何封装JS和CSS文件为服务器端
·岂今我看过的最强的排序算法
·设计模式学习笔记之单件模式
Google
 
VB.NET中关于DataGrid颜色的自定义
[ 作者:  加入时间:2007-11-26 16:29:55  来自:Linux联盟收集整理 ]
近来项目用到了一个类似WEB控件DataGrid中自定义行或列的颜色的功能,然而应用却是在WIN的窗体下,实现起来无法使用类似JavaScript的脚本注册的功能来动态完成,十分着急,察看了CSDN的一些关于WinForm下的关于DataGrid的资料,看到这样的一篇介绍DG结构的美文,题目是《Henry手记:WinForm Datagrid结构剖析》,作者是韩睿(Latitude),其中介绍了WIN DG的颜色的定义,但是主要是针对每一个Cell的。 WV5Linux联盟
   WV5Linux联盟
  我们需要的则是标记某一行的数据,用颜色突出显示,所以作了部分改动,现在把部分代码张贴出来供大家参考: WV5Linux联盟
   WV5Linux联盟
  1. 基础类出自韩睿: WV5Linux联盟
   WV5Linux联盟
  URL: http://www.csdn.net/develop/read_article.asp?id=15686 WV5Linux联盟
   WV5Linux联盟
   Public Class DataGridColoredTextBoxColumn WV5Linux联盟
   WV5Linux联盟
   WV5Linux联盟
   WV5Linux联盟
   Inherits DataGridTextBoxColumn WV5Linux联盟
   WV5Linux联盟
   WV5Linux联盟
   WV5Linux联盟
   Public rowcollection As New Collection() WV5Linux联盟
   WV5Linux联盟
   WV5Linux联盟
   WV5Linux联盟
   Public BackColor() As Color WV5Linux联盟
   WV5Linux联盟
   WV5Linux联盟
   WV5Linux联盟
   Public ForeColor() As Color WV5Linux联盟
   WV5Linux联盟
   WV5Linux联盟
   WV5Linux联盟
   WV5Linux联盟
   WV5Linux联盟
   Private Function GetText(ByVal Value As Object) As String WV5Linux联盟
   WV5Linux联盟
   If TypeOf (Value) Is System.DBNull Then WV5Linux联盟
   WV5Linux联盟
   Return NullText WV5Linux联盟
   WV5Linux联盟
   ElseIf Value Is Nothing Then WV5Linux联盟
   WV5Linux联盟
   Return "" WV5Linux联盟
   WV5Linux联盟
   Else WV5Linux联盟
   WV5Linux联盟
   Return Value.ToString WV5Linux联盟
   WV5Linux联盟
   End If WV5Linux联盟
   WV5Linux联盟
   End Function WV5Linux联盟
   WV5Linux联盟
   WV5Linux联盟
   WV5Linux联盟
   Protected Overloads Overrides Sub Paint(ByVal g As System.Drawing.Graphics, ByVal bounds As System.Drawing.Rectangle, _ WV5Linux联盟
   WV5Linux联盟
   ByVal source As System.Windows.Forms.CurrencyManager, _ WV5Linux联盟
   WV5Linux联盟
   ByVal rowNum As Integer, _ WV5Linux联盟
   WV5Linux联盟
   ByVal backBrush As System.Drawing.Brush, _ WV5Linux联盟
   WV5Linux联盟
   ByVal foreBrush As System.Drawing.Brush, _ WV5Linux联盟
   WV5Linux联盟
   ByVal alignToRight As Boolean) WV5Linux联盟
   WV5Linux联盟
   WV5Linux联盟
   WV5Linux联盟
   WV5Linux联盟
   WV5Linux联盟
   Dim text As String WV5Linux联盟
   WV5Linux联盟
   WV5Linux联盟
   WV5Linux联盟
   text = GetText(GetColumnValueAtRow(source, rowNum)) WV5Linux联盟
   WV5Linux联盟
   WV5Linux联盟
   WV5Linux联盟
   backBrush = New SolidBrush(TextBox.BackColor) WV5Linux联盟
   WV5Linux联盟
   WV5Linux联盟
   WV5Linux联盟
   foreBrush = New SolidBrush(TextBox.ForeColor) WV5Linux联盟
   WV5Linux联盟
   WV5Linux联盟
   WV5Linux联盟
   WV5Linux联盟
   WV5Linux联盟
   ReDim Preserve BackColor(rowcollection.Count) WV5Linux联盟
   WV5Linux联盟
   WV5Linux联盟
   WV5Linux联盟
   ReDim Preserve ForeColor(rowcollection.Count) WV5Linux联盟
   WV5Linux联盟
   WV5Linux联盟
   WV5Linux联盟
   WV5Linux联盟
   WV5Linux联盟
   WV5Linux联盟
   WV5Linux联盟
   Dim i As Integer = 1 WV5Linux联盟
   WV5Linux联盟
   WV5Linux联盟
   WV5Linux联盟
   Do While (i <= rowcollection.Count) WV5Linux联盟
   WV5Linux联盟
   WV5Linux联盟
   WV5Linux联盟
   If rowNum = Val(rowcollection.Item(i)) Then WV5Linux联盟
   WV5Linux联盟
   WV5Linux联盟
   WV5Linux联盟
   If Not BackColor(i - 1).IsEmpty Then WV5Linux联盟
   WV5Linux联盟
   WV5Linux联盟
   WV5Linux联盟
   backBrush = New SolidBrush(BackColor(i - 1)) WV5Linux联盟
   WV5Linux联盟
   WV5Linux联盟
   WV5Linux联盟
   End If WV5Linux联盟
   WV5Linux联盟
   WV5Linux联盟
   WV5Linux联盟
   If Not ForeColor(i - 1).IsEmpty Then WV5Linux联盟
   WV5Linux联盟
   WV5Linux联盟
   WV5Linux联盟
   foreBrush = New SolidBrush(ForeColor(i - 1)) WV5Linux联盟
   WV5Linux联盟
   WV5Linux联盟
   WV5Linux联盟
   End If WV5Linux联盟
   WV5Linux联盟
   WV5Linux联盟
   WV5Linux联盟
   End If WV5Linux联盟
   WV5Linux联盟
   WV5Linux联盟
   WV5Linux联盟
   i += 1 WV5Linux联盟
   WV5Linux联盟
   WV5Linux联盟
   WV5Linux联盟
   Loop WV5Linux联盟
   WV5Linux联盟
   WV5Linux联盟
   WV5Linux联盟
   MyBase.PaintText(g, bounds, text, backBrush, foreBrush, alignToRight) WV5Linux联盟
   WV5Linux联盟
   WV5Linux联盟
   WV5Linux联盟
   End Sub WV5Linux联盟
   WV5Linux联盟
   WV5Linux联盟
   WV5Linux联盟
   End Class WV5Linux联盟
   WV5Linux联盟
   WV5Linux联盟
   WV5Linux联盟
   WV5Linux联盟
   WV5Linux联盟
  2.关于行颜色定义的类: WV5Linux联盟
   WV5Linux联盟
  Imports System.Windows.Forms WV5Linux联盟
   WV5Linux联盟
  Namespace Truck_WEB WV5Linux联盟
   WV5Linux联盟
   WV5Linux联盟
   WV5Linux联盟
   Public Class DrawDGClass WV5Linux联盟
   WV5Linux联盟
   WV5Linux联盟
   WV5Linux联盟
   Public Class ReDrawDataDridControls : Inherits DataGridColoredTextBoxColumn WV5Linux联盟
   WV5Linux联盟
   WV5Linux联盟
   WV5Linux联盟
   Public Sub DrawCorol(ByRef DG As DataGrid, Optional ByVal CurrentRowindex As Integer = 0) WV5Linux联盟
   WV5Linux联盟
   '设置选中的行的颜色,默认是第一行选中。 WV5Linux联盟
   WV5Linux联盟
   Dim dt As DataTable WV5Linux联盟
   WV5Linux联盟
   Dim ts As New DataGridTableStyle() WV5Linux联盟
   WV5Linux联盟
   ts.AllowSorting = False WV5Linux联盟
   WV5Linux联盟
   Dim aColumnTextColumn As DataGridColoredTextBoxColumn WV5Linux联盟
   WV5Linux联盟
   dt = CType(DG.DataSource, DataTable) WV5Linux联盟
   WV5Linux联盟
   ts.MappingName = CType(DG.DataSource, DataTable).TableName WV5Linux联盟
   WV5Linux联盟
   DG.TableStyles.Clear() WV5Linux联盟
   WV5Linux联盟
   Dim numCols As Integer WV5Linux联盟
   WV5Linux联盟
   numCols = dt.Columns.Count WV5Linux联盟
   WV5Linux联盟
   Dim i, j As Integer WV5Linux联盟
   WV5Linux联盟
   i = 0 WV5Linux联盟
   WV5Linux联盟
   j = 0 WV5Linux联盟
   WV5Linux联盟
   WV5Linux联盟
   WV5Linux联盟
   Do While (i < numCols) WV5Linux联盟
   WV5Linux联盟
   WV5Linux联盟
   WV5Linux联盟
   aColumnTextColumn = New DataGridColoredTextBoxColumn() WV5Linux联盟
   WV5Linux联盟
   WV5Linux联盟
   WV5Linux联盟
   Dim rowindex As Integer = 0 WV5Linux联盟
   WV5Linux联盟
   WV5Linux联盟
   WV5Linux联盟
   WV5Linux联盟
   WV5Linux联盟
   For rowindex = 0 To dt.Rows.Count - 1 WV5Linux联盟
   WV5Linux联盟
   Dim StrSel As String WV5Linux联盟
   WV5Linux联盟
   Dim MyForeCorol, MyBackCorol As Color WV5Linux联盟
   WV5Linux联盟
   aColumnTextColumn.rowcollection.Add(rowindex) WV5Linux联盟
   WV5Linux联盟
   If rowindex = CurrentRowindex Then WV5Linux联盟
   WV5Linux联盟
   MyForeCorol = Color.White WV5Linux联盟
   WV5Linux联盟
   MyBackCorol = Color.DarkSlateBlue WV5Linux联盟
   WV5Linux联盟
   else WV5Linux联盟
   WV5Linux联盟
   WV5Linux联盟
   WV5Linux联盟
   MyForeCorol = Color.DarkSlateBlue WV5Linux联盟
   WV5Linux联盟
   MyBackCorol = Color.White WV5Linux联盟
   WV5Linux联盟
   End If WV5Linux联盟
   WV5Linux联盟
   WV5Linux联盟
   WV5Linux联盟
   ReDim Preserve aColumnTextColumn.ForeColor(aColumnTextColumn.rowcollection.Count) WV5Linux联盟
   WV5Linux联盟
   ReDim Preserve aColumnTextColumn.BackColor(aColumnTextColumn.rowcollection.Count) WV5Linux联盟
   WV5Linux联盟
   aColumnTextColumn.ForeColor(rowindex) = MyForeCorol WV5Linux联盟
   WV5Linux联盟
   aColumnTextColumn.BackColor(rowindex) = MyBackCorol WV5Linux联盟
   WV5Linux联盟
   Next WV5Linux联盟
   WV5Linux联盟
   WV5Linux联盟
   WV5Linux联盟
   WV5Linux联盟
   WV5Linux联盟
   '要更改列头名,请改下句的HeaderText值 WV5Linux联盟
   WV5Linux联盟
   aColumnTextColumn.HeaderText = dt.Columns(i).ColumnName WV5Linux联盟
   WV5Linux联盟
   WV5Linux联盟
   WV5Linux联盟
   aColumnTextColumn.MappingName = dt.Columns(i).ColumnName WV5Linux联盟
   WV5Linux联盟
   WV5Linux联盟
   WV5Linux联盟
   ts.GridColumnStyles.Add(aColumnTextColumn) WV5Linux联盟
   WV5Linux联盟
   i = (i + 1) WV5Linux联盟
   WV5Linux联盟
   Loop WV5Linux联盟
   WV5Linux联盟
   DG.TableStyles.Add(ts) WV5Linux联盟
   WV5Linux联盟
   WV5Linux联盟
   WV5Linux联盟
   End Sub WV5Linux联盟
   WV5Linux联盟
   End Class WV5Linux联盟
   WV5Linux联盟
   End Class WV5Linux联盟
   WV5Linux联盟
  End Namespace WV5Linux联盟
   WV5Linux联盟
   WV5Linux联盟
   WV5Linux联盟
   WV5Linux联盟
   WV5Linux联盟
  以上是设定选中单行的颜色为反色,各位还可以借题发挥一下!例如设置颜色,等等。 WV5Linux联盟
   WV5Linux联盟
  在此向《Henry手记:WinForm Datagrid结构剖析》的作者韩睿致谢! WV5Linux联盟
   WV5Linux联盟
   WV5Linux联盟
   WV5Linux联盟
  以后我会尽量完善这个DrawDG的类,为大家提供方便! Linux联盟收集整理 ,转贴请标明原始链接,如有任何疑问欢迎来本站Linux论坛讨论
评论】【加入收藏夹】【 】【打印】【关闭
※ 相关链接
 ·大图生小图的源码(VB.NET)  (2007-10-26 12:53:32)
 ·VB.NET 中 SqlTransaction 的使用  (2007-10-15 16:20:22)