WinForm Datagrid结构剖析(二)3

时间:2010-03-15 12:18:49  来源:第二电脑网  作者:第二电脑网

  第二电脑网导读:;   Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) _      Handles Button2.Click       Dim dt As DataTable       Dim ts As New DataGridTableStyle()       Dim aColumnTextColumn As...
  正文:下面是我的例子中“变色”按键(ID:button2)的代码。实现了两种变色方式:指定位置变色,根据数据源条件判断结果来动态变色:
  
  -------------------X代码X-----------------------------------------
  
  Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) _
  
  Handles Button2.Click
  
   Dim dt As DataTable
  
   Dim ts As New DataGridTableStyle()
  
   Dim aColumnTextColumn As DataGridColoredTextBoxColumn '上面自定义的类
  
   dt = DataSet11.Tables("table") ‘Dataset11请自已去定义,或者看一下我的前一篇文章
  
   DataGrid1.DataSource = dt ‘数据源绑定
  
   ts.MappingName = dt.TableName
  
  
  
   Dim numCols As Integer
  
   numCols = DataSet11.Tables("table").Columns.Count ‘统计列数
  
   Dim i, j As Integer
  
   i = 0
  
   j = 0
  
  
  
   Do While (i < numCols) '重绘所有的列
  
   aColumnTextColumn = New DataGridColoredTextBoxColumn()
  
   If i = 0 Then
  
   aColumnTextColumn.rowcollection.Add(0) ‘指定行数
  
   aColumnTextColumn.rowcollection.Add(2)
  
   ReDim aColumnTextColumn.ForeColor(aColumnTextColumn.rowcollection.Count)
  
   ReDim aColumnTextColumn.BackColor(aColumnTextColumn.rowcollection.Count)
  
   '不赋值就是默认色,背景为白,前景为黑
  
   aColumnTextColumn.ForeColor(0) = Color.Red
  
   aColumnTextColumn.ForeColor(1) = Color.Blue
  
   aColumnTextColumn.BackColor(0) = Color.Pink
  
   aColumnTextColumn.BackColor(1) = Color.Aqua
  
   End If
  
   If i = 1 Then
  
   For j = 0 To DataSet11.Tables("table").Rows.Count - 1
  
   If DataSet11.Tables("table").Rows(j)(i) > 2 Then ‘判断列中哪一个cell会大于2
  
   aColumnTextColumn.rowcollection.Add(j)
  
   ReDim ColumnTextColumn.ForeColor(aColumnTextColumn.rowcollection.Count)
  
   ReDim aColumnTextColumn.BackColor(aColumnTextColumn.rowcollection.Count)
  
   aColumnTextColumn.ForeColor(0) = Color.White
  
   aColumnTextColumn.BackColor(0) = Color.Black
  
   End If
  
   Next
  
   End If
  
   '要更改列头名,请改下句的HeaderText值
  
   aColumnTextColumn.HeaderText = DataSet11.Tables("table").Columns(i).ColumnName
  
   aColumnTextColumn.MappingName = DataSet11.Tables("table").Columns(i).ColumnName
  
   ts.GridColumnStyles.Add(aColumnTextColumn)
  
   i = (i + 1)
  
   Loop
  
   DataGrid1.TableStyles.Add(ts)
  
  End Sub
  
  这里说明一点,判断时要注意类型的一致,在本例中,第二列的类型是数字型的,所以直接与数字2进行比对大小。

WinForm Datagrid结构剖析(二)3》由第二电脑网原创提供,转载请注明:http://www.002pc.com/master/College/Programming/aspnet/13225.html


关键字:

关于《WinForm Datagrid结构剖析(二)3》文章的评论

站内搜索: 高级搜索

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