将Button的OwnerDraw属性设为true。

解决方案 »

  1.   

    好像button没有OwnerDraw这个属性呀?
      

  2.   

    是我搞错了。不必设置属性,直接在OnPaint中绘制是可以的。
    贴出你的代码看看。
      

  3.   

    private void button1_Paint(object sender, System.Windows.Forms.PaintEventArgs e)
    {
    Graphics gp = this.button1.CreateGraphics();
    gp.DrawLine(new Pen(Color.Red),0,0,100,100);
    gp.DrawRectangle(new Pen(Brushes.Green,2),0,0,100,50);
    gp.FillRectangle(Brushes.Green,0,0,100,50);
    gp.Dispose();
    }
    这样一转换页面或其它操作,绘出的图就会消失了?
      

  4.   

    一转换页面?这样做当然不行了。用e.Graphics来绘。
      

  5.   

    如果我要把画图的程序写在一个专门的函数里,点击button1时,调用这个函数给一个panel画图,点击button2时,调用这个函数给一个textbox画图.....那这时我应该怎么样把参数e传给这个函数呢?
      

  6.   

    可以在OnPaint中调用你的绘图函数,在点击 button1时,使panel失效。。
      

  7.   

    这个是要用e.Graphics来绘,要不然刷新不行,我以前也搞了好久,用Creat一动就没了