如果是wpf的话,对话框的背景应设置为null

解决方案 »

  1.   

    不好意思看错了,是OnPaintt啊
      

  2.   

    你在form1里新建一个按钮,点击后调用fm.Invalidate()试试呢
      

  3.   

    是因为 Paint 顺序,先是 Form.Paint,然后是 PictureBox.Paint
    第一次加载的时候在 PictureBox.Paint 的时候将 Form.Paint 中画的矩形覆盖掉了,
    在你焦点离开 Form 再重新回到 Form 的时候,Form.Paint 重新被调用(此时 PictureBox.Paint)没有被调用,这时候矩形就显示出来了。
      

  4.   

    在窗口绘制矩形问题
    private void button1_Click(object sender, EventArgs e)
            {
                Graphics graphics = this.CreateGraphics();//声明一个Graphics对象
                Pen myPen = new Pen(Color.Blue, 8);//实例化Pen类
                //调用Graphics对象的DrawRectangle方法
                graphics.DrawRectangle(myPen, 10, 10, 150, 100);
            }
      

  5.   

    最终用了把矩形画在背景上,设置picturebox的背景 为刚才的Image ,图形显示出来了,关于phoenix8343_cn 兄提到的PAINT的顺序 ,我只用了protected override void OnPaint(PaintEventArgs e)//这个重载函数,这个应该是FORM的,不知道PICTUREBOX的Onpaint如何写?
      

  6.   

    能不能获取PICTUREBOX的Graphic然后直接画呢
      

  7.   

    在pictureBox的事件中有的。找到后双击它就出来了。