none
DataGridView中使用paint事件绘制直线,在滚动DataGridView中的数据时位置显示不固定!请教 RRS feed

  • 问题

  • 我绘制直线的起点 是遍历row然后将row的height加起来得到y值,x=0

    DataGridView中的数据滚动时 这个起点在滚出屏幕后就会消失,刷新后显示位置相对于最上边一行的高度 等于之前 加出来的值
    请问想要达到Excel中的效果:(在每一页显示一个很大的 “第?页”而且页之间绘制出一条虚线 显示分页 怎么做到)
    谢谢


    最开心的是今天有收获。
    2009年6月30日 13:59

答案

全部回复

  • 你好,

    能够给出你的代码让我重现你是如何处理Paint事件来绘制直线的。同时看下这个控件(这是一个第三方控件,不是微软的产品,只是给你参考,我们不支持关于这个产品使用中的问题)是否满足你的需要:
    http://social.msdn.microsoft.com/Forums/en-US/Vsexpressvb/thread/92432cb1-3872-40dd-80fa-e45731add30b/


    Please remember to mark the replies as answers if they help and unmark them if they provide no help.
    Welcome to the All-In-One Code Framework! If you have any feedback, please tell us.
    2009年7月2日 6:21
    版主
  • 你好,谢谢你关注我的问题
    我的代码其实很简单
    int pageRows=21;
                int pageHeight=0;
                int pageWidth=0;
    Font font=new Font ("宋体",72.0f);
                StringFormat sf=new StringFormat ();
                sf.Alignment =StringAlignment.Center ;
                sf.LineAlignment =StringAlignment .Center ;

                DataGridView dgv=(DataGridView )sender ;
                for (int i = 0; i < pageRows; i++)
                    pageHeight += dgv.Rows[i].Height;
                for (int j=0;j<dgv.Columns .Count ;j++)
                    pageWidth +=dgv.Columns [j ].Width ;
                RectangleF rectF=new RectangleF (0f,0f,(float )pageWidth ,(float )pageHeight );
                e.Graphics.DrawString("第"+page.ToString ()+"页",font ,Brushes.Gray  ,rectF ,sf );
                Pen dashPen = new Pen(Color.Blue ,2.0f);
                dashPen.DashStyle = DashStyle.Dash;
                e.Graphics.DrawLine(dashPen ,0f,(float)pageHeight,(float )dgv.Width,(float )pageHeight);
    但是它不能很好的工作
    刚启动后显示正常,滚动后就不正常了


    最开心的是今天有收获。
    2009年7月2日 15:06
  • private void dataGridView1_Scroll(object sender, ScrollEventArgs e)
            {
                dataGridView1.Invalidate();
            }

    http://feiyun0112.cnblogs.com/
    2009年7月3日 0:57
    版主
  • 虽然还没有解决问题,但是有点意思了,谢谢!
    最开心的是今天有收获。
    2009年7月6日 11:21