不用createGraphics()而是直接设置背景就OK了Bitmap myImage = new Bitmap(pictureBox1.Width,pictureBox1.Height);Graphics g = Graphics.FromImage(myImage); g.DrawRectangle(Pens.Red,5,5,400,400); //画矩形pictureBox1.Image=myImage;

解决方案 »

  1.   

    我的主要目的是移动滚动条时,picturebox里的画的矩形照样能够显示,而不是被剪切!!!!!
      

  2.   

    那就用 Paint 事件,现成的不用不是那个什么吗?
      

  3.   

    重载OnPaint方法
    protected override void OnPaint(PaintEventArgs e)
    {
        base.OnPaint (e);
        Graphics g = CreateGraphics();
        g.DrawRectangle(````````);
    }
      

  4.   

    这样只能实现画一个矩形,而我要求的是矩形位置从数据库里读取,要在PICTUREBOX里画满足要求的矩形个数,不只有一个,你这样只能画最后一个矩形,同时我要用一个按纽控制,点一下按纽把要求的矩形画出来,在点一下,矩形消失!!!
      

  5.   

    怎么会只能画一个矩形?g.DrawRectangle(Pens.Red,5,5,400,400); //画矩形这里又不是只能写一句,你想画多少画多少……不要说画矩形你画飞机坦克都可以
      

  6.   

    你可以把其他内容设置成backgroundimage,因为所有的矩形都是在image上,所以只要设置
    pictureBox1.Image=null;
    就可以了
      

  7.   

    我试了,能行,可我搞不懂的是听你这么一说,backgroundimage和image 有什么样的区别呢!
      

  8.   

    在按钮里加入: this.pictureBox1.Refresh();