用C#绘制类似心电图的程序,我首先画了个表格,然后就是在表格上画随时间变化的曲线先用随机数代替的,
现在的问题就是画出了曲线后,我采用的是Graphicsghs=this.CreateGraphics();ghs.Clear(Color.White);//绘制整个背景层...
现在的问题就是画出了曲线后,我采用的是
Graphics ghs = this.CreateGraphics();
ghs.Clear(Color.White); //绘制整个背景层
this.jiekou();//绘制表格的方法
this.huitu2();//绘制曲线的方法
但这样每次都要重新绘制表格,结果导致在屏幕上显得比较闪烁。
我想问的就是怎么才能不用重复绘制表格,只需绘制曲线?
求大神帮忙 展开
Graphics ghs = this.CreateGraphics();
ghs.Clear(Color.White); //绘制整个背景层
this.jiekou();//绘制表格的方法
this.huitu2();//绘制曲线的方法
但这样每次都要重新绘制表格,结果导致在屏幕上显得比较闪烁。
我想问的就是怎么才能不用重复绘制表格,只需绘制曲线?
求大神帮忙 展开
展开全部
悄悄告诉你,其实.Net的GDI+的绘图,效率好得超过你的想像。
闪烁的问题不需要修改绘画策略也可以解决。
你只要在你的Graphics所属的控件(在你这个例子中,也就是你的this,我猜是你的窗体吧)的构造函数上,加入以下几句话就可以。亲测绝对有效。。
/// <summary>
/// 构造函数
/// </summary>
public Form1()
{
InitializeComponent();
SetStyle(
ControlStyles.OptimizedDoubleBuffer
| ControlStyles.ResizeRedraw
| ControlStyles.AllPaintingInWmPaint
| ControlStyles.UserPaint
| ControlStyles.SupportsTransparentBackColor,
true);
}
展开全部
我提供个思路吧,你现在是把一个空白的画板当成背景层了,然后每次都是在这个画板上先画表格再画曲线,其实你可以把画好表格的画板当做一个背景层,然后每次画曲线时就调用这个画板。具体到代码里的话,就是保存一个画好了表格,没画曲线的画板,以这个做母本,然后每次画曲线的时候,复制一个母本的对象,只要母本不受污染,你就可以无限调用,这样应该就能避免屏幕闪烁了吧。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
其实,我个人觉得,你是走了弯路,不是有Chart控件么,而且官方有类似的案例,操作挺方便的,支持动态更新。
仅供参考!
仅供参考!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
建议不要在Window上面直接画,而是加个PictureBox,然后用一张表格图作为picturebox底图backgroundImage,
至于表格图,可以用其他软件画好,也可以自己在代码里一次绘制好,这样还可以在需要修改网格大小时绘制一次
至于表格图,可以用其他软件画好,也可以自己在代码里一次绘制好,这样还可以在需要修改网格大小时绘制一次
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询