screenshot of a winforms control through C#

狂风中的少年 提交于 2019-11-29 04:50:47

Yes. This can be done.

I whipped up a sample program to do it. Forgive my naming conventions and code organization, this was whipped up very quickly. You can modify it to better fit your needs, but this shows the basics.

I have a single form with three controls:

  • button1: Button with the default settings.
  • button2: Button with the Visible property set to false and the Text set to "button2 - not visible"
  • webBrowser1: WebBrowser control with the visibility set to false, set the size to 250, 101 (just so it fits on my form. The size is relevant when you look at the capture at the bottom of my answer. You'll need to size it accordingly.)

here's the code in Form1:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Drawing.Imaging;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {

            PrintInvisibleControl(button2, @"C:\button.jpg");
            PrintInvisibleControl(webBrowser1, @"C:\webbrowser.jpg");


        }

        private void PrintInvisibleControl(Control myControl, string filename)
        {

            Graphics g = myControl.CreateGraphics();
            //new bitmap object to save the image        
            Bitmap bmp = new Bitmap(myControl.Width, myControl.Height);
            //Drawing control to the bitmap        
            myControl.DrawToBitmap(bmp, new Rectangle(0, 0, myControl.Width, myControl.Height));
            bmp.Save(filename, ImageFormat.Jpeg);
            bmp.Dispose();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            webBrowser1.Navigate("http://www.microsoft.com");
        }

    }
}

This resulted in the following captures:

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!