运行环境:Windows XP(SP3)+vs.net2005+Crystal Reports XI我在重写DataGridView的OnScroll事件时,需要重新调用OnCellPainting事件,去重新绘制一些列头的文本,如何调用呀?

解决方案 »

  1.   

    干嘛要手工调用这个事件?没有必要!
    你订阅这个事件,在事件处理方法做你的事件就可以了!        private void dataGridView1_CellPainting(object sender, DataGridViewCellPaintingEventArgs e)
            {
                if(e.ColumnIndex==1 && e.RowIndex!=-1)//控制行、列
                {
                    //加上你要处理的代码
                }
            }
      

  2.   

    因为我有重绘二维列头,当重绘的二维列头不在DataGridView当前显示区内时,通过横向导航按钮移动并显示此二维列头时,此二维列头显示的内容却是乱码,所以需要重新绘制列头,我现在是通过DataGridView的Scrill事件中,调用Refresh()实现,但有闪烁现象。
    我想在Scrill事件中,调用OnCellPainting事件,只重绘制列头就好
      

  3.   


    如果这样,我还要去修改OnCellPainting中的处理代码为自定义方法,在Scroll中循环每个列,并准备参数调用绘制列头的方法,难道没有其它简单点的方法吗?
      

  4.   

    没关系,可以参考一下,谢谢
    可以发我[email protected]中,谢谢。
      

  5.   

    现在搞定了吗?是怎么刷新oncellpaintting()