主要代码:
private void btn_CutScreen_Click(object sender, EventArgs e)
        {
            if (this.pic_MainScreen.Image != null)
            {
                this.pic_MainScreen.Image.Dispose();
                this.pic_MainScreen.Image = null;
            }
            System.IO.MemoryStream ms = new System.IO.MemoryStream();
            using (Bitmap bit = new Bitmap(Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height))
            {
                using (Graphics g = Graphics.FromImage(bit))
                {
                    g.CopyFromScreen(0, 0, 0, 0, bit.Size);
                    g.Dispose();
                }
                bit.Save(ms, ImageFormat.Jpeg);
                bit.Save("d:\\test\\" + DateTime.Now.ToString("HHmmss") + ".jpg");
            }
            this.pic_MainScreen.Image = Image.FromStream(ms);
            ms.Close();
            ms.Dispose();
        }
点一次按钮,截取整个屏幕图片,并正常显示在picturebox中.
发生问题:如果多次点击按钮,picturebox中显示成这样了.(红色框内)这个图片是正常截图后保存的,也就是说方法应该没错.为什么图片出现层叠了呢?

解决方案 »

  1.   

    删掉 
    if (this.pic_MainScreen.Image != null)
      {
      this.pic_MainScreen.Image.Dispose();
      this.pic_MainScreen.Image = null;
      }
    //另外
       你的 using 不能都放一块吗?
      

  2.   

    删了也是这现象,,,看中间最眼花的部分,倒是在if语句中加入messagebox.show()方法就有效果了,这是什么原因呢
      

  3.   

    哦 你自己照 两个相对镜子 也是 这样 ,
    你截取了你以前截取了你以前的把自己 藏起来 就行了hide 或者 visuable=false 搞完了再 蹦出来
      

  4.   


    而且你每次都把 图像 大小变了你把图像 size 模式变一变 再重复截取就就明白了