Hallo nochmal,
ich habe ein neues Form, auf dem in voller Größe ein Bild angezeigt wird. Es soll nicht gewartet werden, bis es geschlossen ist. Leider füllt sich mit jedem Mal der RAM sehr deutlich. Wie kann ich das löschen?
In dem Thread „Dialoge richtig instanziieren“ habe ich schon geschaut.
In Form1, Aufruf von Form2
und
in Form 2
ich habe ein neues Form, auf dem in voller Größe ein Bild angezeigt wird. Es soll nicht gewartet werden, bis es geschlossen ist. Leider füllt sich mit jedem Mal der RAM sehr deutlich. Wie kann ich das löschen?
In dem Thread „Dialoge richtig instanziieren“ habe ich schon geschaut.
In Form1, Aufruf von Form2
und
VB.NET-Quellcode
- Public Sub Erstelle_Form2()
- '==================================================
- 'Erstellt eine Form, auf der das Bild zu sehen ist.
- 'Es wird absichtlich nicht .ShowDialog(Me) benutzt
- '(was man heute in VB.Net eigentlich macht), sondern
- ' .Show(Me), damit auf das Fenster nicht gewartet
- 'werden muss. Es ist komplett nebensächlich.
- '==================================================
- Dim Form2 As New Form_gross
- Dim W As Integer
- Dim H As Integer
- Using myBitmap As New Bitmap(file_path)
- W = myBitmap.Size.Width
- H = myBitmap.Size.Height
- End Using
- Me.Invoke(Sub() Form2.PictureBox1.Image = Image.FromFile(file_path))
- If W > 1848 OrElse H > 1006 Then
- Me.Invoke(Sub() Form2.PictureBox1.SizeMode = PictureBoxSizeMode.StretchImage)
- Else
- Me.Invoke(Sub() Form2.PictureBox1.SizeMode = PictureBoxSizeMode.Normal)
- End If
- 'Dim Dummy As DialogResult
- 'Me.Invoke(Sub() Dummy = Form2.Show())
- Me.Invoke(Sub() Form2.Show(Me))
- 'Debug.WriteLine(Dummy.ToString)
- 'End Using
- End Sub
in Form 2
VB.NET-Quellcode
- Public Class Form_gross
- Private Sub Button_rechtsrum_Click(sender As Object, e As EventArgs) Handles Button_rechtsrum.Click
- PictureBox1.Image.RotateFlip(RotateFlipType.Rotate90FlipNone)
- PictureBox1.Refresh()
- End Sub
- Private Sub Button_linksrum_Click(sender As Object, e As EventArgs) Handles Button_linksrum.Click
- PictureBox1.Image.RotateFlip(RotateFlipType.Rotate270FlipNone)
- PictureBox1.Refresh()
- End Sub
- Private Sub Button_Close_Click(sender As Object, e As EventArgs) Handles Button_Close.Click
- PictureBox1.Image = Nothing
- Close()
- End Sub
- Private Sub Form_gross_Load(sender As Object, e As EventArgs) Handles MyBase.Load
- Me.Location = New Point(Screen.AllScreens(1).WorkingArea.Left, Screen.AllScreens(1).WorkingArea.Top)
- End Sub
- End Class