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