Hallo liebes Forum,
ich habe jetzt schon recht lange an folgende Problematik rumgebastelt... Ich hoffe ihr könnt mir helfen.
Ich habe ein TabContro mit 3 pages. Auf Page(1) und Page(2) sind jeweils zwei PictureBoxen wo via Paint-Event gezeichnet wird.
Beim wechseln der page:
Das Problem sieht nun so aus: Wenn ich auf der Page(0) bin, löse ich button_click Ereignis aus und dort dann call saveForPDF().
Die .png Dateien von Page(0) sind TippiToppi. Die von Page(1) und Page(2) jedoch sind Leer. Wie bekomme ich das hin, dass diese nicht leer sind?
Vielen Dank schon mal vorab.
ich habe jetzt schon recht lange an folgende Problematik rumgebastelt... Ich hoffe ihr könnt mir helfen.
Ich habe ein TabContro mit 3 pages. Auf Page(1) und Page(2) sind jeweils zwei PictureBoxen wo via Paint-Event gezeichnet wird.
VB.NET-Quellcode
- Public Sub PB_querX_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles PB_querX.Paint
- If ergX(0, 0) = Nothing Or drawQuer = False Then Exit Sub
- Dim p1, p2 As Drawing.Point
- Dim zngPanel As PictureBox
- 'Zeichnen der Achse
- zngPanel = sender
- zngPanel.Refresh()
- p1.X = 0
- p1.Y = zngPanel.Height / 2
- p2.X = zngPanel.Width
- p2.Y = zngPanel.Height / 2
- e.Graphics.DrawLine(penAchse, p1, p2)
- sender.Update()
- ' ... noch viel mehr code
- End Sub
Beim wechseln der page:
VB.NET-Quellcode
- Private Sub TabControl1_MouseClick(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles TabControl1.MouseClick
- drawQuer = True : PB_querX.Invalidate()
- drawBiege = True : PB_biegeX.Invalidate()
- drawQuer = True : PB_querY.Invalidate()
- drawBiege = True : PB_biegeY.Invalidate()
- End Sub
- Private Sub TabControl1_TabIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles TabControl1.TabIndexChanged
- Call TabControl1_MouseClick(sender, Nothing)
- End Sub
Das Problem sieht nun so aus: Wenn ich auf der Page(0) bin, löse ich button_click Ereignis aus und dort dann call saveForPDF().
VB.NET-Quellcode
- Sub saveForPDF()
- ' Prüfen ob Verzeichnis existiert, sonst anlegen
- If Dir("C:\Temp\", FileAttribute.Directory) = "" Then MkDir("C:\Temp\")
- Me.TabControl1.SelectedIndex = 0
- Threading.Thread.Sleep(1000)
- ' Kräftedarstellung als Bilder im Temp-Ordner abspeichern um in PDF zu laden
- Dim bmp1 As New Bitmap(Panel_AK_X.Width, Panel_AK_X.Height)
- Using fs As Graphics = Graphics.FromImage(bmp1)
- fs.CopyFromScreen(Me.Location.X + Panel_AK_X.Location.X + 12, _
- Me.Location.Y + Panel_AK_X.Location.Y + TabControl1.Location.Y + 50, _
- 0, 0, bmp1.Size)
- End Using
- bmp1.Save("C:\Temp\AKX.png", Drawing.Imaging.ImageFormat.Png)
- ' Kräftedarstellung als Bilder im Temp-Ordner abspeichern um in PDF zu laden
- Dim bmp2 As New Bitmap(Panel_AK_Y.Width, Panel_AK_Y.Height)
- Using fs As Graphics = Graphics.FromImage(bmp2)
- fs.CopyFromScreen(Me.Location.X + Panel_AK_Y.Location.X + 12, _
- Me.Location.Y + Panel_AK_Y.Location.Y + TabControl1.Location.Y + 50, _
- 0, 0, bmp2.Size)
- End Using
- bmp2.Save("C:\Temp\AKY.png", Drawing.Imaging.ImageFormat.Png)
- Me.TabControl1.SelectedIndex = 1
- Threading.Thread.Sleep(500)
- ' Querkraftverlauf als Bilder im Temp-Ordner abspeichern um in PDF zu laden
- Dim bmp11 As New Bitmap(PB_querX.Width, PB_querX.Height)
- PB_querX.DrawToBitmap(bmp11, New System.Drawing.Rectangle(0, 0, PB_querX.Width, PB_querX.Height))
- bmp11.Save("C:\Temp\qkvX.png", Drawing.Imaging.ImageFormat.Png)
- ' Biegemomentenverlauf als Bilder im Temp-Ordner abspeichern um in PDF zu laden
- Dim bmp12 As New Bitmap(PB_biegeX.Width, PB_biegeX.Height)
- PB_biegeX.DrawToBitmap(bmp12, New System.Drawing.Rectangle(0, 0, PB_biegeX.Width, PB_biegeX.Height))
- bmp12.Save("C:\Temp\bmvX.png", Drawing.Imaging.ImageFormat.Png)
- If yEbene = True Then
- Me.TabControl1.SelectedIndex = 2
- Threading.Thread.Sleep(500)
- ' Querkraftverlauf als Bilder im Temp-Ordner abspeichern um in PDF zu laden
- Dim bmp21 As New Bitmap(PB_querY.Width, PB_querY.Height)
- PB_querY.DrawToBitmap(bmp21, New System.Drawing.Rectangle(0, 0, PB_querY.Width, PB_querY.Height))
- bmp21.Save("C:\Temp\qkvY.png", Drawing.Imaging.ImageFormat.Png)
- ' Biegemomentenverlauf als Bilder im Temp-Ordner abspeichern um in PDF zu laden
- Dim bmp22 As New Bitmap(PB_biegeY.Width, PB_biegeY.Height)
- PB_biegeY.DrawToBitmap(bmp22, New System.Drawing.Rectangle(0, 0, PB_biegeY.Width, PB_biegeY.Height))
- bmp22.Save("C:\Temp\bmvY.png", Drawing.Imaging.ImageFormat.Png)
- End If
- Me.TabControl1.SelectedIndex = 0
- End Sub
Die .png Dateien von Page(0) sind TippiToppi. Die von Page(1) und Page(2) jedoch sind Leer. Wie bekomme ich das hin, dass diese nicht leer sind?
Vielen Dank schon mal vorab.