Hallo Leute,
ich hoffe, Ihr könnt mir hier helfen?!?
Ich bastel gerade ein einer Applikation, die einen Ofen steuert. In der UserForm ist eine PictureBox, die die Heizkurve als Soll- und Ist-Wert zeichnet. So weit gut...das funktioniert auch einwandfrei, aber....
Da die Ofenzeit relativ lang ist, müsste man die Applikation im Hintergrund/minimiert ablaufen, um nur ab und zu zur Kontrolle "mal ein Auge drauf" zu werfen.
...und hier kommt mein Problem:
Wenn ich die UF minimiere und dann wieder in den Vordergrund hole, sind beide Kurven weg. Ich habe also eine leere PictureBox vor mir. Gibt es eine Möglichkeit, die Anzeige in dir PictureBox zu erhalten???
Hier mal ein Schnippel zum Verständnis:
<
<
<
Public Sub plotter()
Dim plot As System.Drawing.Graphics = PictureBox1.CreateGraphics()
plot.DrawLine(Pens.Blue, CInt((x2_alt / 6) + 20), 280 - CInt(alt_temp / _
4), CInt((x2_neu / 6) + 20), 280 - CInt(neu_temp / 4))
End Sub
Private Sub Programm_click(ByVal sender As System.Object, ByVal e As _
System.EventArgs) Handles Button1.Click
Dim plot As System.Drawing.Graphics = PictureBox1.CreateGraphics()
jetzt = Format(Now(), "HH:mm:ss")
Me.Refresh()
plot.DrawLine(Pens.Blue, 20, 280, 600, 280) ' x-achse
plot.DrawLine(Pens.Blue, 20, 0, 20, 280) ' y Achse
plot.DrawLine(Pens.Blue, 15, 150, 25, 150) ' y
' Scalenstrich 520
plot.DrawString("520", drawFont, drawBrush, 0, 130) ' Beschriftung
' 520
plot.DrawLine(Pens.Blue, 15, 153, 25, 153) ' y
' Scalenstrich 508
plot.DrawString("508", drawFont, drawBrush, 0, 153) ' Beschriftung
' 508
plot.DrawLine(Pens.Blue, 15, 170, 25, 170) ' y
' Scalenstrich 440
plot.DrawString("440", drawFont, drawBrush, 0, 170) ' Beschriftung
' 440
If ProgrammBox.SelectedIndex = -1 Then
MessageBox.Show("Achtung: Bitte Programm auswählen!")
End If
If ProgrammBox.SelectedIndex = 0 Then
plot.DrawLine(Pens.Red, 20, 275, 153, 170) ' Anheizen 20
' bis 440 Grad
plot.DrawLine(Pens.Red, 153, 170, 559, 170) ' 440 halten
Laufzeitanzeige.Text() = "Warmhalten aktiviert.Bitte nach Ende mit" & _
"neuem Programm starten."
End If
If ProgrammBox.SelectedIndex = 1 Then
plot.DrawLine(Pens.Red, 20, 275, 183, 153) ' Anheizen 0
' bis 508 Grad
plot.DrawLine(Pens.Red, 183, 153, 198, 153) ' 508 halten (
' 15 min)
plot.DrawLine(Pens.Red, 198, 153, 334, 170) ' Abkuehlen auf
' 440
plot.DrawLine(Pens.Red, 334, 170, 349, 170) ' 440 halten (
' 15 min)
plot.DrawLine(Pens.Red, 349, 170, 559, 275) ' Abkuehlen auf
' 20
Laufzeit = 539
Laufzeitanzeige.Text() = "Batch-Annealing fertig um: " & Format( _
TimeSerial(Hour(jetzt), Minute(jetzt) + Laufzeit, Second(jetzt)), _
"HH:mm") & " Uhr"
End If
<
<
<
<Was übersehe ich da? |