什么时候Datagridview的Paint和Cellpainting被调用?

时间:2015-06-10 13:38:02

标签: c# datagridview draw paint datagridviewimagecolumn

我有一个Datagridview view config.scoped_views = true ,让我们说我想手动影响的3列:

dgv

其他列与其各自col1 : DataGridviewTextboxColumn, for displaying a number col2 : DataGridviewTextboxColumn, used as a color indicator, without text. BackColor will will be changed later. col3 : DataGridviewImageColumn 的基础DataPropertyName绑定。上面的3列没有绑定到任何Datasource并受到手动影响,例如当我想要更改图像或颜色指示符时。

每次影响DataPropertyName时,我都会进行数据源重新绑定,DataSource更新网格的图形。

  1. 何时以及如何让dgv.Invalidate()考虑3个编辑列中的手动值?以前我手动影响dgv内的上面3列。它会工作,但CellPainting需要很长时间,我们决定删除它。我尝试将它们放在dgv_CellPainting(我用于合并标题)中,但它不会采用颜色和图像。
  2. 使用CellPainting:行间空格的矩形,填充背景,行之间的分隔,图像和颜色的框等。我引用的3列是第一列(索引),颜色和图像(在框中)列。其他图像是不变的。

    enter image description here

    没有CellPainting:没有行和列分隔。我通过将网格的单元格边框设置为水平来创建伪行分隔。

    enter image description here

    1. 何时调用dgv_PaintCellPainting?什么是执行顺序及其区别?我粗略的理解是,当细胞/网格“需要重新粉刷”时,它们会被调用。但我注意到它们被多次调用,不仅仅是在我调用Paint时,甚至当我将鼠标悬停在网格区域上时。
    2. 谢谢大家。

0 个答案:

没有答案