1
我试图覆盖DataGridView
中某个列的errorIcon。我已经在网上找到了一些有关这方面的信息,但我的自定义类的PaintErrorIcon
方法永远不会被调用。为了测试,我添加了正常的Paint
覆盖,并使用下面的测试代码,我在输出中得到了“PAINT”,但是当我为单元格设置了errorText时,没有看到“ERROR PAINT”(单元格获得当错误文本被设置时,错误图标和Paint被调用)。DataGridViewCell PaintErrorIcon方法
public class DataGridViewWarningCell: DataGridViewTextBoxCell
{
protected override void Paint(Graphics graphics, Rectangle clipBounds, Rectangle cellBounds, int rowIndex, DataGridViewElementStates cellState, object value, object formattedValue, string errorText, DataGridViewCellStyle cellStyle, DataGridViewAdvancedBorderStyle advancedBorderStyle, DataGridViewPaintParts paintParts)
{
base.Paint(graphics, clipBounds, cellBounds, rowIndex, cellState, value, formattedValue, errorText, cellStyle, advancedBorderStyle, paintParts);
Console.WriteLine("PAINT");
}
protected override void PaintErrorIcon(Graphics graphics, Rectangle clipBounds, Rectangle cellValueBounds, string errorText)
{
base.PaintErrorIcon(graphics, clipBounds, cellValueBounds, errorText);
Console.WriteLine("ERROR PAINT");
}
}
我已经添加列到我的DataGridView这样的:
public class DataGridViewWarningColumn : DataGridViewColumn
{
public DataGridViewWarningColumn()
{
this.CellTemplate = new DataGridViewWarningCell();
}
}
然后在我的表单代码:
var warningColumn = new DataGridViewWarningColumn();
fileGrid.Columns.Add(warningColumn);
这是我结束(现在正在试验类似的东西,但你的意见完成了,谢谢!) – 2014-09-25 11:03:46