C# 获取';油漆';功能?

C# 获取';油漆';功能?,c#,.net,winforms,compact-framework,C#,.net,Winforms,Compact Framework,我继承了datagridcolumnstyle,在Paint函数中,我需要根据正在渲染的行中的单元格执行一些操作 例如,我有以下几点: row 1: color1, name, last name row 2: color2, name2, last name2 row 3: color3, name3, last name3 姓名和姓氏列需要按照颜色列中定义的颜色绘制 因此,当绘制与name2相关的datagridcolumnstyle时,我需要能够执行以下操作: protected ove

我继承了
datagridcolumnstyle
,在Paint函数中,我需要根据正在渲染的行中的单元格执行一些操作

例如,我有以下几点:

row 1: color1, name, last name
row 2: color2, name2, last name2
row 3: color3, name3, last name3
姓名和姓氏列需要按照颜色列中定义的颜色绘制

因此,当绘制与name2相关的
datagridcolumnstyle
时,我需要能够执行以下操作:

protected override void Paint( Graphics g, Rectangle bounds, CurrencyManager source, int rowNum, Brush backBrush, Brush foreBrush, bool alignToRight )
{
Color color = (Color)GetRow( rowNum ).GetCell(color1).Value;
}

我不知道这是什么,也不知道如何让它工作,但下面是Microsoft示例中显示的示例:

基于这段代码,我想说使用这个工具的原因是从提供的坐标处的单元格中读取值,并根据该值更改颜色

因此,如果值无效,可以将单元格涂成红色

如果未保存该值,则可以将字体设置为粗体


但是,我发布的示例并不适用于Windows Mobile

我使用的简单解决方案是,在创建自定义
DataGridColumnStyle
对象时,将对所属DatGrid的引用传递给该对象。这可以通过构造函数或属性来完成。然后您可以在
绘制期间访问整行

我从未使用过。链接的示例不是在我拥有的任何WinMoble版本下生成的。你有更好的推荐信吗?这是干什么用的?
protected override void Paint(Graphics g, Rectangle bounds, CurrencyManager source, int rowNum,
    Brush backBrush, Brush foreBrush, bool alignToRight) {
  DateTime date = (DateTime)GetColumnValueAtRow(source, rowNum);
  Rectangle rect = bounds;
  g.FillRectangle(backBrush, rect);
  rect.Offset(0, 2);
  rect.Height -= 2;
  g.DrawString(date.ToString("d"), this.DataGridTableStyle.DataGrid.Font, foreBrush, rect);
}