在使用C#进行界面设计的过程中,用到了datagridview控件,该控件其实很灵活,对于图表形式的

显示非常实用有效。

  1. 数据源比较灵活,一般其可以和databinding控件一起使用。数据源可是从数据库中获得数据,或从ArrayList中取得,也可以通过excel等文档的形式取得。

  2. 显示的样式很多,有很多可以选择调整的属性。例如行头是否显示,表列名如何显示等。

  3. 行为动作很多,可以触发的事件很多。


上面这些在控件上点击右键属性都是可以看见的,不过多进行叙述。

这里想说一个遇到的挺有意思的问题。

在进行表格显示的时候我想把某些行的颜色进行改变,所以在datagridview进行数据绑定之后使用了如下语句:

datagridview1.Rows[i].DefaultCellStyle.BackColor = System.Drawing.Color.Gray;

意图是想把某一行设为灰色,但是显示出来的时候并没有生效,试了一下

datagridview1.DefaultCellStyle.BackColor = System.Drawing.Color.Gray;

把整个grid都设置为灰色了,发现这样是可以生效的。


为什么在初始化datagridview控件的数据源之后让某行变色不行呢,我猜想了一下可能是由于初始化完数据,设定完显示样式之后,显示形式又被自动刷了一次。


实现了一下cellclick事件,处理动作就是让点击的那行变色,发现单行变色是好使的,可以执行的。

目前为什么在初始化的时候不好用还没有搞清楚,我的做法是响应DataBindingComplete事件,在数据绑定完之后再进行表格样式的设定,结果达到了预期效果,但是这只是一个临时的替代方案,不是根本的原因,找到为什么不能在初始化时设置格式才是根本。