没有OnPaint触发的.NET CF DataGrid重绘?

时间:2014-08-20 15:48:20

标签: .net datagrid custom-controls compact-framework

最近问了一个相关的问题,关于.NET Compact Framework中的双缓冲,当绘制基础控件的绘画时,我注意到另一个导致一些闪烁的问题。

我的网格控件,继承自DataGrid,在基础DataGrid的绘画之上覆盖OnPaint以进行一些自定义绘制,而某些事件导致OnPaint触发(如CurrentCellChanged),其他一些事件(KeyPress)事件,单击但不更改当前单元格的MouseDown事件或2个滚动条的ValueChanged事件导致基础DataGrid重绘但OnPaint未被触发(因此,对于瞬间,DataGrid看起来像普通的DataGrid,没有我的自定义标题)。

有没有好办法防止这种情况发生?

目前我所做的只是在每个事件处理程序中手动重做绘制,以绘制在没有OnPaint触发的情况下绘制基本DataGrid的事件。这只是一个糟糕的解决方案,偶尔会有一些闪烁。 (就像我在800行网格中垂直滚动它可能会闪烁5次)。

0 个答案:

没有答案