当前位置:编程学习 > C#/ASP.NET >>

picturebox被其他窗体覆盖后图形不见了

我用C#写了一个波形显示的界面,用picturebox控件来显示波形,但是当picturebox被弹出的子窗口覆盖后,原来的图就像被擦去了一样。我将绘图函数在picturebox_paint事件函数中重写后,只有改变主界面的大小后才会重绘(重写Paint()也是如此),实在没办法了,谁能帮帮我? --------------------编程问答-------------------- 你是直接在picturebox上画图么?如果是的改为在一个bitmap上画图然后把bitmap赋给picturebox --------------------编程问答-------------------- 例如
  private void Form1_Load(object sender, EventArgs e)
   {
   Bitmap bmpScreenShot = new Bitmap(800, 600);
   }

   private void pictureBox1_Paint(object sender, PaintEventArgs e)
   {
   Graphics gfx = Graphics.FromImage((Image)bmpScreenShot);
   gfx.DrawEllipse(new Pen(Color.Red, 5), this.Left, this.Top, 100, 100);
   pictureBox1.Image = bmpScreenShot;
   }
--------------------编程问答--------------------
引用楼主 imaginecaosen 的回复:
我用C#写了一个波形显示的界面,用picturebox控件来显示波形,但是当picturebox被弹出的子窗口覆盖后,原来的图就像被擦去了一样。我将绘图函数在picturebox_paint事件函数中重写后,只有改变主界面的大小后才会重绘(重写Paint()也是如此),实在没办法了,谁能帮帮我?


子窗口关闭后,调用一下PictrueBox的Refresh() --------------------编程问答-------------------- 用GDI+画图的话直接在Form上画或者搞个panel什么的当画板,干嘛搞个picturebox. --------------------编程问答-------------------- 这个方法我正在试,但是怎样获得子窗体的关闭消息呢?
引用 3 楼 isjoe 的回复:
引用楼主 imaginecaosen 的回复:
我用C#写了一个波形显示的界面,用picturebox控件来显示波形,但是当picturebox被弹出的子窗口覆盖后,原来的图就像被擦去了一样。我将绘图函数在picturebox_paint事件函数中重写后,只有改变主界面的大小后才会重绘(重写Paint()也是如此),实在没办法了,谁能帮帮我?


子窗口关闭后,调用一下PictrueBox……
--------------------编程问答-------------------- 我是个菜鸟,想画图一打开工具箱就把picturebox拉来啦。那用你说的panel画图和用picturebox画图的操作一样吗?有哪些区别啊?
引用 4 楼 andywangguanxi 的回复:
用GDI+画图的话直接在Form上画或者搞个panel什么的当画板,干嘛搞个picturebox.
--------------------编程问答-------------------- 谢谢,我知道这个方法。但是我想试着解决重绘的问题。
引用 1 楼 funxu 的回复:
你是直接在picturebox上画图么?如果是的改为在一个bitmap上画图然后把bitmap赋给picturebox
--------------------编程问答-------------------- 把画的图给到一个Image对象,然后把它赋给PicBox.Image --------------------编程问答-------------------- 我也在纠结着个问题呢
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,