Как Вы программно получаете изображение управления .NET?
Существует метод на каждом управлении, названном DrawToBitmap. Вы не должны к p/invoke делать это.
Control c = new TextBox();
System.Drawing.Bitmap bmp = new System.Drawing.Bitmap(c.Width, c.Height);
c.DrawToBitmap(bmp, c.ClientRectangle);
Можно получить изображение управления.NET программно довольно легко использование , метод DrawToBitmap класса Управления, запускающегося в.NET 2.0
Вот, является образцом в VB
Dim formImage As New Bitmap("C:\File.bmp")
Me.DrawToBitmap(formImage, Me.Bounds)
, И здесь это находится в C#:
Bitmap formImage = New Bitmap("C:\File.bmp")
this.DrawToBitmap(formImage, this.Bounds)
Управление. DrawToBitmap позволит Вам привлечь большинство средств управления к битовому массиву. Это не работает с RichTextBox и некоторыми другими.
, Если Вы хотите получить их или управление, которое имеет одного из них, затем необходимо сделать, PInvoke нравится описанный в этой статье CodeProject: Захват изображения
Заботится, что некоторые из этих методов получат то, что находится на экране, поэтому если у Вас будет другое оконное покрытие Ваше управление, то Вы получите это вместо этого.
Для средств управления WinForms, которые поддерживают его, в Системе существует метод. Windows. Формы. Класс управления:
public void DrawToBitmap(Bitmap bitmap, Rectangle targetBounds);
Это не работает со всеми средствами управления, как бы то ни было. У сторонних поставщиков компонента есть более комплексные решения.
если это не находится на управлении, Вы пытаетесь сделать, можно обычно бросать его к основному классу Управления и называть метод DrawToBitmap там.