我有一个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
更新网格的图形。
dgv.Invalidate()
考虑3个编辑列中的手动值?以前我手动影响dgv
内的上面3列。它会工作,但CellPainting需要很长时间,我们决定删除它。我尝试将它们放在dgv_CellPainting
(我用于合并标题)中,但它不会采用颜色和图像。使用CellPainting:行间空格的矩形,填充背景,行之间的分隔,图像和颜色的框等。我引用的3列是第一列(索引),颜色和图像(在框中)列。其他图像是不变的。
没有CellPainting:没有行和列分隔。我通过将网格的单元格边框设置为水平来创建伪行分隔。
dgv_Paint
和CellPainting
?什么是执行顺序及其区别?我粗略的理解是,当细胞/网格“需要重新粉刷”时,它们会被调用。但我注意到它们被多次调用,不仅仅是在我调用Paint
时,甚至当我将鼠标悬停在网格区域上时。谢谢大家。