日期:2014-05-17  浏览次数:20920 次

关于窗体中被遮挡控件的截图的问题!求高手!
如题:最近要做个截屏功能,但是我只需要截取画面中的一部分(某控件 比如Grid),可这部分又老是会被别的控件遮挡(比如Panel),网上查了不少都是用拷屏,我觉得我这个其实就是要把 这个控件保存为一张图片不管被不被遮挡!

贴一下 当前的代码 (拷屏)

Rectangle r;
            //获取控件的工作区矩形并转成屏幕上对应的区域
            r = this.c1Chart1.RectangleToScreen(c1Chart1.ClientRectangle);
            int with = c1Chart1.Width;
            int height = c1Chart1.Height;
            Image im = new Bitmap(with, height);
            Graphics g = Graphics.FromImage(im);
            g.CopyFromScreen(new Point(r.X, r.Y), new Point(0, 0), new Size(with, height));
            //第一个参数是目标源左上角坐标,第二个参数是画布中的对应坐标,第三个参数区域大小。
            SaveFileDialog saveFileDialog1 = new SaveFileDialog();
            saveFileDialog1.Filter = "Image(*.jpg)|*.jpg";
            DialogResult dr = saveFileDialog1.ShowDialog();
            if (dr == DialogResult.OK)
            {
                im.Save(saveFileDialog1.FileName);
            }
            else
            {
                MessageBox.Show("截图到文件失败!");
            }

            // Clipboard.SetImage(im);//拷贝数据到剪切板
            g.Dispose();
            im.Dispose();
求大虾给指点
隐藏截图

------解决方案--------------------
control.DrawToBitmap(xxx)
------解决方案--------------------
用API
printwindow
这样可以不管目标前面有没有东西挡住。