你可以把它畫在一個Bitmap中,用PictureBox顯示,或者重載OnPaint函數

解决方案 »

  1.   

    http://expert.csdn.net/Expert/topic/2863/2863619.xml?temp=.6308405
      

  2.   

    你应该在OnPaint中绘制,这样刷新就可以了。
      

  3.   

    所有的绘制动作都在OnPaint中,岂不是太受限制了?比如说我点一个按钮,触发一个绘制动作,这个动作怎么在OnPaint中体现呢?
      

  4.   

    控件写OnPaint事件,在需要重绘时调用控件的方法Invalidate.
      

  5.   

    也就是说你解发Invalidate ,即会发生Onpaint事件。
      

  6.   

    //可以在任何事件里面写。
    //picDraw  是您的画布,它是图片框,也可以是其它的。
    //建立一个Bitmap对像 大小就是那个画布
    Bitmap bitmap = new Bitmap(picDraw.Width,picDraw.Height);
    //建立一个Graphics对像
    Graphics g = Graphics.FromImage(bitmap);g.DrawLine(System.Drawing.Pens.Red,0,0,100,0);
    g.Save();
    g = null;
    picDraw.Image = bitmap;
    bitmap = null;
      

  7.   

    使用Invalidate(),提醒控件重新绘制(调用OnPaint中的方法),典型是在Protected override OnResize()中加入Invalidate(),在控件调整大小时,重新绘制控件
      

  8.   

    不管是窗体,还是控件,绘制动作都是在OnPaint事件中进行,比如WM_PAINT消息,点一个按钮,触发一个绘制动作,可以这样理解,比如加一个矩形,是用Collection变量_rects中加入Rectangle对象,
    在OnPaint事件中,foreach(Rectangle r in _rects) g.DrawRectangle(...
      

  9.   

    多谢大家!
    如何重写一个控件,比如说一个按钮的onpaint事件呢?