关于datagird根据条件改变多行颜色的问题。

来源:百度知道 编辑:UC知道 时间:2024/07/04 07:41:14
下面是一个例子,不过数据是别人自己添加的数组,希望改成从数据库读取数据的实例,但是本人不才改了一下午没搞定,希望高手帮改下,拜谢····
#region User Variable
private DataTable UserTable = null;
private DataView UserView = null;
#endregion

private void Form1_Load(object sender, System.EventArgs e)
{
try
{
InitDataTable();
InitDataView();
InitDataGrid();
InitData();
}
catch( Exception ex )
{
MessageBox.Show( ex.Message );
}
}

private void InitDataTable()
{
UserTable = new DataTable("UserTable");
DataColumn[] d = new DataColumn[4];
d[0] = new DataColumn("d0",typeof(string));
d[1] = new DataColumn(&

我帮你改写了,你自己去试一下吧:
using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;
using System.Data.SqlClient;
namespace winCh03Demo
{
///<summary>
/// BackColorForm 的摘要描述。
///</summary>
public class BackColorForm : System.Windows.Forms.Form
{
//定义DataGridColoredTextBoxColumn类
public class DataGridColoredTextBoxColumn : DataGridTextBoxColumn
{
//利用DataView来传递当前DataGrid中的数据
public DataView dv = null;

//重写Paint
protected override void Paint(Graphics g, Rectangle bounds, CurrencyManager source, int rowNum, Brush backBrush, Brush foreBrush, bool alignToRight)
{
try
{
dv=((DataRowView)source.Current).DataView ;
//判断DataGrid中每行第一列的数据是否为如下的字符串
switch( dv[rowNum].Row[1].ToString() )
{
case "