本实例代码实现了WinForm截屏保存为图片,亲测可行。
界面截图:
下载:http://hovertree.com/h/bjaf/scjyuanma.htm
以下代码可以实际运行,在项目HoverTreeCSJ中运行成功。
/* 何问起 http://hovertree.com/hovertreescj/ */ using System; using System.Drawing; using System.Drawing.Imaging; using System.IO; using System.Windows.Forms; namespace HoverTreeSCJ.SCJForms.ToolForms { public partial class Form_GetScreen : Form { public Form_GetScreen() { InitializeComponent(); } private void button_getScreen_Click(object sender, EventArgs e) { FormWindowState h_currentState = MdiParent.WindowState; if (checkBox_isHide.Checked) { //MdiParent.Hide(); //http://hovertree.com/h/bjaf/de7qg5wd.htm this.MdiParent.WindowState = FormWindowState.Minimized; } //创建图象,保存将来截取的图象 Bitmap image = new Bitmap(Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height); Graphics imgGraphics = Graphics.FromImage(image); //设置截屏区域 柯乐义 imgGraphics.CopyFromScreen(0, 0, 0, 0, new Size(Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height)); //保存 SaveImage(image); if (checkBox_isHide.Checked) { this.MdiParent.WindowState = h_currentState; // this.MdiParent.Show(); } } //保存图象文件 private void SaveImage(Image image) { //http://hovertree.com/h/bjaf/ruwwcg2p.htm saveFileDialog_getScreen.FileName = "何问起截图" + DateTime.Now.ToFileTime(); if (saveFileDialog_getScreen.ShowDialog(this) == DialogResult.OK) { string fileName = saveFileDialog_getScreen.FileName; string extension = Path.GetExtension(fileName); if (extension == ".jpg") { image.Save(fileName, ImageFormat.Jpeg); } else { image.Save(fileName, ImageFormat.Bmp); } } } } }
转自:http://hovertree.com/h/bjaf/76q5yeli.htm