用Invalidate();
或其重载的函数不可以吗?

解决方案 »

  1.   

    //试试如下的代码:
    private void panel1_Paint(object sender, System.Windows.Forms.PaintEventArgs e)
    {
    e.Graphics.DrawRectangle(System.Drawing.SystemPens.ControlText, 5,5, this.panel1.Width-10, this.panel1.Height-10);
    }private void panel1_Resize(object sender, System.EventArgs e)
    {
    this.panel1.Invalidate();
    }
      

  2.   

    是这样的,不过补充一下, Invalidate()只是让区域内的控件不再有效,但有时候会因为队列中等待处理的事件会导致实际调用OnPaint()的时延(控件很多的时候),所以在Invalidate后面调用Update()会立即调用Onpaint(),他会绘制任何无效的区域。....panel1_resize(...){  this.panel1.Invalidate();
      this.panel1.Update();
    }