晕,太难了吧,winform下datagrid的问题
DataGridTextBoxColumn 里有这样一个受保护的方法 Paint
如果想调用Paint方法 必须定义一个继承于DataGridTextBoxColumn的对象
MSDN里有例子代码 代码简化后如下
这样写编译时并不报错 但是执行时会报错.
错误提示是"指定的转换无效"
dgt.GridColumnStyles[hi.Column]返回的类型是DataGridTextBoxColumn
当我想把DataGridTextBoxColumn转换成MyGridColumn时
就失败了 这是为什么呀?
DataGridTextBoxColumn gridCol =(DataGridTextBoxColumn)dgt.GridColumnStyles[hi.Column];
这样写是没问题的
public class Form1: Form
{
private void PaintCell(object sender, MouseEventArgs e)
{
MyGridColumn gridCol =(MyGridColumn)dgt.GridColumnStyles[hi.Column];
gridCol.PaintCol(g, cellRect, cm, hi.Row, bBrush, fBrush, false);
}
}
public class MyGridColumn:DataGridTextBoxColumn
{
public void PaintCol(Graphics g, Rectangle cellRect,
CurrencyManager cm, int rowNum, Brush bBrush,
Brush fBrush, bool isVisible)
{
this.Paint(g, cellRect, cm, rowNum, bBrush, fBrush, isVisible);
}
}