为什么都不喜欢处理Paint事件,而是喜欢重写OnPaint方法?
1.你很可能不小心重写了Form的OnPaint而非PictureBox的OnPaint,重写可是需要继承的哦。
2.方法的参数e就带有Graphics属性,不要自己再去创建。

解决方案 »

  1.   


    这个窗体是我新建的,也没有继承呀...怪事了,用Panel却可以..怪事了,
    是不是一个Bug呀/?
      

  2.   

    新建的窗体不都是继承自Form吗?
    这不算什么bug,Paint被激发的时机不同而已。
      

  3.   

    一楼说得正确,你的Onpaint重写了窗体,而不是picturebox.
    至于如何操作:
                e.Graphics.DrawString("这是绘制文本", new Font("宋体", 12), new SolidBrush(Color.Black), 6f, 6f); 删除贴出来的所有代码,并把这句代码放到PicutreBox1_Paint()事件里
      

  4.   

    在什么里面画就在什么的paint事件里话(前提是该控件支持PAINT).
    不要onpaint重写
      

  5.   

    不是继承的PictureBox!你重写的Form的OnPaint事件,当然是画在Form上了,可能是绘制部分被控件挡住了
      

  6.   


    同意,,,要不把PictureBox的背景设成透明看看。。
      

  7.   

    protected override void OnPaint(PaintEventArgs e) 
            { 
                base.OnPaint(e); 
                e.Graphics.DrawString("这是绘制文本", new Font("宋体", 12), new SolidBrush(Color.Black), 6f, 6f); 
            } 
      

  8.   

    重写基类的OnPaint是道选!
    楼主这一点是对的。