Comment voulez-vous obtenir par programme à l'image d'une .Contrôle Net?
Réponses
Trop de publicités?Il y a une méthode à chaque contrôle appelé DrawToBitmap. Vous n'avez pas besoin de p/invoke pour ce faire.
Control c = new TextBox();
System.Drawing.Bitmap bmp = new System.Drawing.Bitmap(c.Width, c.Height);
c.DrawToBitmap(bmp, c.ClientRectangle);
Vous pouvez obtenir une image d'une .NET de contrôle par programmation assez facilement à l'aide de la DrawToBitmap méthode de la classe de Contrôle de départ dans .NET 2.0
Voici un exemple en VB
Dim formImage As New Bitmap("C:\File.bmp")
Me.DrawToBitmap(formImage, Me.Bounds)
Et ici, il est en C#:
Bitmap formImage = New Bitmap("C:\File.bmp")
this.DrawToBitmap(formImage, this.Bounds)
De contrôle.DrawToBitmap vous permettra de dessiner la plupart des contrôles à une image bitmap. Cela ne fonctionne pas avec RichTextBox et quelques autres. Si vous souhaitez capturer ces, ou un contrôle qui a l'un d'eux, alors vous devez faire PInvoke comme décrit dans le projet de code de l'article http://www.codeproject.com/KB/graphics/imagecapture.aspxproposé par Jeff. Veiller à ce que certaines de ces méthodes permettra de capturer tout ce qui est sur l'écran, donc si vous avez une autre fenêtre couvrant votre contrôle, vous aurez à la place.
Ici est un lien vers un codeproject page avec une description détaillée de...
Pour WinForms contrôles à l'appui de cela, il y a une méthode dans le Système.De Windows.Les formulaires.Classe de contrôle:
public void DrawToBitmap(Bitmap bitmap, Rectangle targetBounds);
Cela ne fonctionne pas avec tous les contrôles, cependant. Composants tiers fournisseurs ont des solutions plus complètes.