我是我的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是什么颜色,文本本身都会以黑色呈现。首先我认为可能有另一种风格适用于单元格的内容,但我找不到任何东西。所以我现在很困惑: - )
非常感谢任何帮助!
由于 马克
答案 0 :(得分:1)
发现问题:DataGridView类被子类化并且OnPaintCell方法被覆盖。考虑的唯一样式属性是BackColor ...