画图时出现 参数无效 未处理ArgumentException 错误 这是什么错误?然后我要是去掉g.Dispose();
则不会出错,但是图会多出一些多余的线,这是咋回事呢?

解决方案 »

  1.   

    你的g是不是一个类字段或者全局的变量,最有可能的是g这个变量无效,调用了g.Dispose之后再调用g.DrawLines,
      

  2.   

    建议在finally代码块中在释放资源!
      

  3.   

    代码写在OnPaint中,直接用e.Graphic
      

  4.   


    我现在把它放到最后去释放了,然后显示的时候不报错了,但是会出现多余的线,我是把点放入short[]中的,但是我逐句调试看short[]中的点坐标也完全没有错,为什么会出现多余的线呢?
    正常显示的时候应该是这样的
    而现在是
      

  5.   


                
            Bitmap image;
            Bitmap BeiJing;
            Bitmap HuaBu;//初始化画板
                 image = new Bitmap(pictureBox1.ClientSize.Width, pictureBox1.ClientSize.Height);            //获取背景层            BeiJing = (Bitmap)pictureBox1.BackgroundImage;            //初始化画布           HuaBu = new Bitmap(pictureBox1.ClientSize.Width, pictureBox1.ClientSize.Height);
                //初始化图形
                Graphics g = Graphics.FromImage(image);
                Graphics gb = Graphics.FromImage(HuaBu);
    中间是画点的东西。。                        g.DrawLines(pen_1, pY_1);//心电图线1
                            g.Dispose();                       
                            
                            gb.DrawImage(BeiJing, 0, 0);   //先绘制背景层
                            gb.DrawImage(image, 0, 0);   //绘制画层
                            pictureBox1.BackgroundImage = BeiJing;   //设置背景层
                           
                            pictureBox1.CreateGraphics().DrawImage(HuaBu, 0, 0);打了g.Dispose()就会出现那种错误,而我去掉的话就会出现5楼的那种情况