今天在做工资统计GDI模块的时候,发现如果有一个月份没有数据,就会报错。
所以就改了下代码,加了Try-Catch抛出异常。
以上2种写法都不好,郁闷。发现这样的代码有局限性,因为DataGridView的最后一行是多出来的一行,也就是说,8-12月份没记录,8月份不会绘制出“无记录”的字,而是一条1像素的线,本来想在Form_Load里添加一条删除最后一行的代码,不过不能删除。
后来终于想到了,在前面加上判断,要绘制的GDI对象,是不是最后一行就可以了,代码如下
if (dataGridView1.Rows[7] == dataGridView1.Rows[dataGridView1.Rows.Count - 1])
{
dc.DrawString("无记录", 宋体, whiteBrush, 407, 425 - high8);
}
else
{
.....
}