DataGridViewCellStyle.ForeColor无法按预期工作

时间:2011-08-11 14:38:35

标签: c# winforms datagridview

我是我的WinForms 2.0应用程序我在当前单元格中使用DataGridView和自定义编辑控件(IDataGridViewEditingControl)。

当前单元格使用我的自定义编辑控件,该控件继承自文本框并实现IDataGridViewEditingControl接口。此控件现在注册到TextChanged事件,以便在编辑值时执行一些验证逻辑,并注册Leave事件以将一些视觉效果从自定义编辑控件应用到DataGridView单元格。

代码看起来有点像这样:

public class CustomerTextEditingControl : CustomerTextBox, IDataGridViewEditingControl
{
    ...
    protected override void OnLeave(object sender, EventArgs e)
    {
        dataGridView[_col, _row].Style.BackColor = BackgroundColor;
        dataGridView[_col, _row].Style.ForeColor = ForegroundColor;
        ...
    }
    ...
}

现在我的问题是:虽然单元格的背景可以用BackgroundColor可能的任何颜色正确渲染,但无论ForegroundColor是什么颜色,文本本身都会以黑色呈现。首先我认为可能有另一种风格适用于单元格的内容,但我找不到任何东西。所以我现在很困惑: - )

非常感谢任何帮助!

由于 马克

1 个答案:

答案 0 :(得分:1)

发现问题:DataGridView类被子类化并且OnPaintCell方法被覆盖。考虑的唯一样式属性是BackColor ...