我有两个按钮,一个按钮需要画图 另外一个需要打开一个对话框。当我打开对话框的时候第一个按钮所画的图形就不见了 。望给出解决办法。注:
这个图是动态生成的。如果放在paint里,就不能实现所需的效果
需要画图的按钮,其中部分代码如下:
                if (splitResult[0] == "ob")    //判断是否是障碍物的相关设置信息
                {
                    Graphics grfx = this.CreateGraphics();
                    grfx.DrawLine(new Pen(Color.Red, 3), Convert.ToUInt16(splitResult[1]), Convert.ToUInt16(splitResult[2]), Convert.ToUInt16(splitResult[3]), Convert.ToUInt16(splitResult[4]));
                    grfx.Dispose();                }

解决方案 »

  1.   

    创建继承自Button的新类比较好
      

  2.   

    代码放到paint里没有什么不可以!当需要立刻绘制的时候调用this.Invalidate()方法就可以了.
      

  3.   

    你使用this.CreateGraphics();
    建立的图像,并不会自动的响应Paint的系统消息,它只会画一次,你最好写到Paint事件里,或重写写OnPaint事件,如果需要立刻刷新图像,可可以调用Control.Invalidate()方法或其适合的任何一个重载函数.
      

  4.   

    现在是我如果把这个代码放在paint里面,如果我要重新设置,就不行了。高手给点建议
      

  5.   

    建議創建一個內存bitmap,畫到bitmap上,然后把bitmap畫到窗體
      

  6.   

    我想知道怎么清除原来画的线 我在panel上画的!呵呵!
      

  7.   

    建议楼主看一下这个:
    http://blog.csdn.net/hbxtlhx/archive/2007/06/13/1650892.aspx