Einen Screenshot mit C# machen

Hier soll an einem Beispiel gezeigt werden wie man einen Screenshot einer Form in C# realisiert.

Vorraussetzungen

Brauchen tut man hierfür folgendes:
* Eine Form von welcher der Screenshot geamcht werden soll

* Ein Bitmap-Objekt in der der Screenshot zur weiteren verarbeitung abgelegt wird

Erklärung

Als erstes legt man Sinnvollerweise das Bitmap-Objekt an, da man dort den Screenshot rein legen möchte.
Als parameter gibt man für ein Screenshot eines Formulares einfach die breite und höhe dieses Formulares an:

1
Bitmap bmp = new Bitmap(this.Width, this.Height);

Danach können wir mit der Methode „DrawToBitmap()“ der Form einen Screenshot dieser in das Bitmap-Objekt legen.
Als Paramter gibt man das Bitmap-Objekt an, und zusätzlich die Abmessungen des Bereiches.
Der Name „FromLTR“ steht hier für Left/Top/Right/Bottom.

1
this.DrawToBitmap(bmp, Rectangle.FromLTRB(0, 0, this.Width, this.Height));

Exemplarisches Beispiel

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Drawing.Imaging;
using System.Text;
using System.Windows.Forms;
 
namespace screenshot
{
	public partial class Form1 : Form
	{
		public Form1()
		{
			InitializeComponent();
		}
 
		private void button1_Click(object sender, EventArgs e)
		{
			// Bitmap für das Abbild des Controls / der Form bereitstellen
			Bitmap bmp = new Bitmap(this.Width, this.Height);
 
			// Screenshot vornehmen und zurückgeben , speichern (LTRB = Left/Top/Right/Bottom)
			this.DrawToBitmap(bmp, Rectangle.FromLTRB(0, 0, this.Width, this.Height));
			bmp.Save("screenshot.png", ImageFormat.Png);
		}
	}
}

leave your comment

*

Unterstütze den Frickelblog!