Hallo liebe VB-Paradieser,
ich hab mal wieder ein kleines Problem mit meinem Programm..
Das letzte "Problem" habe ich selber gelöst doch jetzt weiß ich echt nicht mehr weiter T_T..
Ich bin dabei für mein Programm eine Einstellung-Form zu erstellen.
Dort sind einige Dinge die in einer config.cfg gespeichert werden.
Soweit so gut, doch soll man dort auch das Logo ändern können.
Das gewählte Logo ist laut Programm-Standard ein .png und wird rechts neben den Textboxen und Labels
in einer Picturebox angezeigt. Da drunter befindet sich ein button welcher ein OpenFileDialog in gang setzt.
Nun will ich das gewählte Bild mit dem logo ersetzen..
Ich habe, da es so nicht ging mit dem einfachen FileCopy - Umbennen und ersetzen, versucht es wie oben zu machen.
doch bekomme ich noch immer den Selben Fehler, das auf logo.png nicht zugegriffen werden kann, weil bereits ein anderer Prozess drauf zugreift..
ich habe versucht es mit picturebox1.dispose() freizugeben aber es hat auch nicht geklappt..
help..
Edit: Hier mal der ganze Source der Form, vielleicht hilft das weiter ..
ich hab mal wieder ein kleines Problem mit meinem Programm..
Das letzte "Problem" habe ich selber gelöst doch jetzt weiß ich echt nicht mehr weiter T_T..
Ich bin dabei für mein Programm eine Einstellung-Form zu erstellen.
Dort sind einige Dinge die in einer config.cfg gespeichert werden.
Soweit so gut, doch soll man dort auch das Logo ändern können.
Das gewählte Logo ist laut Programm-Standard ein .png und wird rechts neben den Textboxen und Labels
in einer Picturebox angezeigt. Da drunter befindet sich ein button welcher ein OpenFileDialog in gang setzt.
Nun will ich das gewählte Bild mit dem logo ersetzen..
VB.NET-Quellcode
- OpenFileDialog1.ShowDialog()
- Dim path As String = OpenFileDialog1.FileName.ToString
- MsgBox(path)
- Try
- Dim load As Bitmap = My.Resources.load
- PictureBox1.Dispose()
- PictureBox1.Refresh()
- PictureBox1.Image = Load
- PictureBox1.SizeMode = PictureBoxSizeMode.StretchImage
- PictureBox1.Refresh()
- PictureBox1.ImageLocation = load.ToString
- PictureBox1.Refresh()
- Catch ex As Exception
- End Try
- Try
- File.Copy(path, My.Computer.FileSystem.CurrentDirectory + "/config/logo2.png", True)
- PictureBox1.Dispose()
- PictureBox1.Image = New Bitmap("config/logo2.png")
- PictureBox1.SizeMode = PictureBoxSizeMode.StretchImage
- PictureBox1.Refresh()
- If My.Computer.FileSystem.FileExists("config/logo.png") Then
- My.Computer.FileSystem.DeleteFile("config/logo.png")
- End If
- File.Copy(My.Computer.FileSystem.CurrentDirectory + "/config/logo2.png", My.Computer.FileSystem.CurrentDirectory + "/config/logo.png", True)
- PictureBox1.Image = New Bitmap("config/logo.png")
- PictureBox1.SizeMode = PictureBoxSizeMode.StretchImage
- PictureBox1.Refresh()
- If My.Computer.FileSystem.FileExists("config/logo2.png") Then
- My.Computer.FileSystem.DeleteFile("config/logo2.png")
- End If
- MsgBox("Firmenlogo wurde geändert und gespeichert")
- Catch ex As Exception
- MsgBox(ex.Message)
- MsgBox("Es ist ein fehler aufgetreten. Bitte ersetzen Sie die Datei per Hand.")
- MsgBox("Benennen sie ihre Bilddatei in ''logo.png'' um und ziehen Sie diese in:" & vbNewLine & My.Computer.FileSystem.CurrentDirectory & "\config")
- MsgBox("Ersetzen Sie ggf. die vorhandene Datei und starten Sie das Programm neu.")
- End Try
- Try
- PictureBox1.Refresh()
- PictureBox1.Image = New Bitmap("config/logo.png")
- PictureBox1.SizeMode = PictureBoxSizeMode.StretchImage
- PictureBox1.Refresh()
- Catch ex As Exception
- End Try
Ich habe, da es so nicht ging mit dem einfachen FileCopy - Umbennen und ersetzen, versucht es wie oben zu machen.
doch bekomme ich noch immer den Selben Fehler, das auf logo.png nicht zugegriffen werden kann, weil bereits ein anderer Prozess drauf zugreift..
ich habe versucht es mit picturebox1.dispose() freizugeben aber es hat auch nicht geklappt..
help..
Edit: Hier mal der ganze Source der Form, vielleicht hilft das weiter ..
VB.NET-Quellcode
- Imports System.IO
- Public Class einstellungen
- Dim compname As String
- Dim ustid As String
- Dim anschr As String
- Dim plzort As String
- Dim phonenr As String
- Private Sub einstellungen_FormClosing(sender As Object, e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
- mainstage.Show()
- End Sub
- Private Sub einstellungen_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
- Dim reader As New StreamReader("config/config.cfg")
- compname = reader.ReadLine()
- ustid = reader.ReadLine()
- plzort = reader.ReadLine()
- anschr = reader.ReadLine()
- phonenr = reader.ReadLine()
- reader.Close()
- TextBox1.Text = compname
- TextBox2.Text = plzort
- TextBox3.Text = anschr
- TextBox4.Text = phonenr
- TextBox5.Text = ustid
- Try
- PictureBox1.Refresh()
- PictureBox1.Image = New Bitmap("config/logo.png")
- PictureBox1.SizeMode = PictureBoxSizeMode.StretchImage
- PictureBox1.Refresh()
- Catch ex As Exception
- End Try
- End Sub
- Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
- OpenFileDialog1.ShowDialog()
- Dim path As String = OpenFileDialog1.FileName
- 'MsgBox(path)
- Try
- PictureBox1.Refresh()
- PictureBox1.Image = New Bitmap(My.Resources.load)
- PictureBox1.SizeMode = PictureBoxSizeMode.StretchImage
- PictureBox1.Refresh()
- Catch ex As Exception
- MsgBox(ex.Message)
- End Try
- Try
- File.Copy(path, My.Computer.FileSystem.CurrentDirectory + "/config/logo2.png", True)
- PictureBox1.Dispose()
- PictureBox1.Image = New Bitmap("config/logo2.png")
- PictureBox1.SizeMode = PictureBoxSizeMode.StretchImage
- PictureBox1.Refresh()
- If My.Computer.FileSystem.FileExists("config/logo.png") Then
- My.Computer.FileSystem.DeleteFile("config/logo.png")
- End If
- File.Copy(My.Computer.FileSystem.CurrentDirectory + "/config/logo2.png", My.Computer.FileSystem.CurrentDirectory + "/config/logo.png", True)
- PictureBox1.Image = New Bitmap("config/logo.png")
- PictureBox1.SizeMode = PictureBoxSizeMode.StretchImage
- PictureBox1.Refresh()
- If My.Computer.FileSystem.FileExists("config/logo2.png") Then
- My.Computer.FileSystem.DeleteFile("config/logo2.png")
- End If
- MsgBox("Firmenlogo wurde geändert und gespeichert")
- Catch ex As Exception
- MsgBox(ex.Message)
- MsgBox("Es ist ein fehler aufgetreten. Bitte ersetzen Sie die Datei per Hand.")
- MsgBox("Benennen sie ihre Bilddatei in ''logo.png'' um und ziehen Sie diese in:" & vbNewLine & My.Computer.FileSystem.CurrentDirectory & "\config")
- MsgBox("Ersetzen Sie ggf. die vorhandene Datei und starten Sie das Programm neu.")
- End Try
- Try
- PictureBox1.Refresh()
- PictureBox1.Image = New Bitmap("config/logo.png")
- PictureBox1.SizeMode = PictureBoxSizeMode.StretchImage
- PictureBox1.Refresh()
- Catch ex As Exception
- End Try
- End Sub
- Private Sub Button2_Click(sender As System.Object, e As System.EventArgs) Handles Button2.Click
- compname = TextBox1.Text
- ustid = TextBox5.Text
- plzort = TextBox2.Text
- anschr = TextBox3.Text
- phonenr = TextBox4.Text
- If MsgBox("Sind die eingetragenen Daten korrekt?" + vbNewLine + compname + vbNewLine + plzort + vbNewLine + anschr + vbNewLine + phonenr + vbNewLine + ustid, MsgBoxStyle.YesNo, "Überprüfen Sie bitte.") = MsgBoxResult.Yes Then
- Try
- Dim writer As New StreamWriter("config/config.cfg")
- writer.WriteLine(compname)
- writer.WriteLine(ustid)
- writer.WriteLine(plzort)
- writer.WriteLine(anschr)
- writer.WriteLine(phonenr)
- writer.Close()
- MsgBox("Erfolgreich gespeichert")
- mainstage.Show()
- Me.Close()
- Catch ex As Exception
- MsgBox(ex.Message)
- End Try
- Else
- Return
- End If
- End Sub
- End Class
Viele Frauen kamen, viele sind gegangen, eine ist geblieben 12.5.12 ich liebe dich Schatz
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Linkai“ ()