Bitmap vom Formular mit Steuerelementen

30/06/2009 - 18:00 von chris mayer | Report spam
Hallo Forum,
ich möchte ein Formular mit Controls zur Laufzeit anlegen und davon ein
Bitmap speichern.
Leider funktioniert das nicht so wie ich will. Ich bekomme nur ein Bitmap,
wenn das Formular kurz mal angezeigt wird.
Ist es auch möglich ein Bitmap anzufertigen, wenn die frm.show und frm.Hide
gelöscht werden ? Oder muss ich an dieses Problem ganz anders rangehen?

Vielen Dank im vorraus

Dim frm as Form = New Form

Dim l As Label = New Label
l.Font = New Font("Arial", 50)
l.Text = CStr(i)
l.Top = 50
l.Left = 10
l.Height = 70
frm.Controls.Add(l)
'frm.show
Dim bmp As Bitmap = New Bitmap(frm.Width, frm.Height)
Dim bound As Rectangle = New Rectangle(0, 0, frm.Width, frm.Height)
frm.DrawToBitmap(bmp, bound)
'frm.Hide()
bm.Save("FORM01.jpg", System.Drawing.Imaging.ImageFormat.Jpeg)


cm
 

Lesen sie die antworten

#1 Thorsten Gudera
01/07/2009 - 16:41 | Warnen spam
Hallo Chris,

"chris mayer" schrieb im Newsbeitrag
news:
Hallo Forum,
ich möchte ein Formular mit Controls zur Laufzeit anlegen und davon ein
Bitmap speichern.
Leider funktioniert das nicht so wie ich will. Ich bekomme nur ein Bitmap,
wenn das Formular kurz mal angezeigt wird.



ich weiß nicht, ob es eine elegante Lösung dafür gibt,

Du könntest jedoch das Formular aber kurz anzeigen außerhalb des Schirmes

(ist aber mehr ein Trick, als eine korrekte Lösung):

Dim frm As Form = New Form

Dim l As Label = New Label
l.Font = New Font("Arial", 50)
l.Text = CStr(12349005050)
l.Top = 50
l.Left = 10
l.Height = 70
l.Width = Me.ClientRectangle.Width
frm.Controls.Add(l)
frm.Left = Screen.GetBounds(Me).Width + 1000
frm.Show()
frm.Hide()
Dim bmp As Bitmap = New Bitmap(frm.Width, frm.Height)
Dim bound As Rectangle = New Rectangle(0, 0, frm.Width, frm.Height)
frm.DrawToBitmap(bmp, bound)
Me.BackgroundImage = bmp

Viele Grüße,

Thorsten

Ähnliche fragen