VB.NET中关于DataGrid颜色的自定义
点击次数:13 次 发布日期:2008-11-26 11:14:04 作者:源代码网
|
源代码网推荐 源代码网推荐 我们需要的则是标记某一行的数据,用颜色突出显示,所以作了部分改动,现在把部分代码张贴出来供大家参考: 源代码网推荐 源代码网推荐 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)。 源代码网推荐 源代码网供稿. |
