用C#绘制类似心电图的程序,我首先画了个表格,然后就是在表格上画随时间变化的曲线先用随机数代替的,

现在的问题就是画出了曲线后,我采用的是Graphicsghs=this.CreateGraphics();ghs.Clear(Color.White);//绘制整个背景层... 现在的问题就是画出了曲线后,我采用的是
Graphics ghs = this.CreateGraphics();
ghs.Clear(Color.White); //绘制整个背景层
this.jiekou();//绘制表格的方法
this.huitu2();//绘制曲线的方法
但这样每次都要重新绘制表格,结果导致在屏幕上显得比较闪烁。
我想问的就是怎么才能不用重复绘制表格,只需绘制曲线?
求大神帮忙
展开
 我来答
fujie724
2013-06-08 · TA获得超过1187个赞
知道小有建树答主
回答量:154
采纳率:100%
帮助的人:275万
展开全部

悄悄告诉你,其实.Net的GDI+的绘图,效率好得超过你的想像。

闪烁的问题不需要修改绘画策略也可以解决。


你只要在你的Graphics所属的控件(在你这个例子中,也就是你的this,我猜是你的窗体吧)的构造函数上,加入以下几句话就可以。亲测绝对有效。。


        /// <summary>
        /// 构造函数
        /// </summary>
        public Form1()
        {
            InitializeComponent();       
            SetStyle(
                     ControlStyles.OptimizedDoubleBuffer
                     | ControlStyles.ResizeRedraw
                     | ControlStyles.AllPaintingInWmPaint
                     | ControlStyles.UserPaint
                     | ControlStyles.SupportsTransparentBackColor,
                     true);
        }
kj1056564568
2013-06-07 · TA获得超过110个赞
知道答主
回答量:152
采纳率:50%
帮助的人:99.1万
展开全部
我提供个思路吧,你现在是把一个空白的画板当成背景层了,然后每次都是在这个画板上先画表格再画曲线,其实你可以把画好表格的画板当做一个背景层,然后每次画曲线时就调用这个画板。具体到代码里的话,就是保存一个画好了表格,没画曲线的画板,以这个做母本,然后每次画曲线的时候,复制一个母本的对象,只要母本不受污染,你就可以无限调用,这样应该就能避免屏幕闪烁了吧。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
MegaChou
2013-06-07 · 超过21用户采纳过TA的回答
知道答主
回答量:54
采纳率:0%
帮助的人:53.6万
展开全部
其实,我个人觉得,你是走了弯路,不是有Chart控件么,而且官方有类似的案例,操作挺方便的,支持动态更新。

仅供参考!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
liuljb2008
2013-06-07 · TA获得超过135个赞
知道小有建树答主
回答量:148
采纳率:0%
帮助的人:149万
展开全部
建议不要在Window上面直接画,而是加个PictureBox,然后用一张表格图作为picturebox底图backgroundImage,
至于表格图,可以用其他软件画好,也可以自己在代码里一次绘制好,这样还可以在需要修改网格大小时绘制一次
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式