Hintergrund von From in My.Settings speichern

  • VB.NET

Es gibt 15 Antworten in diesem Thema. Der letzte Beitrag () ist von kai996.

    Hintergrund von From in My.Settings speichern

    Hi,

    ich habe meinen Webbrowser die Funktion "Bild als Hintergrund hinzufügen" hinzugefügt. Das funktionert auch problemlos, aber wenn ich das Programm schließe und wieder starte, ist das Bild weg. So dachte ich mir wie bei der Funktion "Hintergrundfarbe ändern" es in My.Settings speichern. Problem ist nur: es funktionert nicht, weil bei den Typen bei My.Settings "System.Drawing.Image" fehlt. Wie kann ich jetzt also den Hintergrund speichern (Hinweis: Der Hintergrund ist von der Form also keine Picture Box)
    Willst Du den Hintergrund (ein Image) oder die HintergrundFarbe (ein Color) speichern?
    Ersteres musst Du als separate Datei auslagern, die kannst Du dann beim Start (nach Test auf Vorhanden) mit

    VB.NET-Quellcode

    1. Me.Backgroundmage = Image.FromFile(DATEI_NAME)
    laden.
    Die HintergrundFarbe kannst Du als Color Deinen Settings hinzufügen.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    My.Setting.image = OpenFileDialog1.Filename
    Me.Backgroundimage = my.settings.image
    Mfg: Gather
    Private Nachrichten bezüglich VB-Fragen werden Ignoriert!


    So:

    VB.NET-Quellcode

    1. Sub xxx()
    2. Using dlg As New OpenFileDialog
    3. dlg.Filter = "Images (*.bmp)|*.bmp|alle Dateien (*.*) |*.*"
    4. If dlg.ShowDialog <> Windows.Forms.DialogResult.OK Then
    5. Return
    6. End If
    7. Me.BackgroundImage = Image.FromFile(dlg.FileName)
    8. End Using
    9. End Sub
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    My.Setting.image = OpenFileDialog1.Filename
    Me.Backgroundimage = my.settings.image
    My.setting.save

    Sorry wegen kein vb-tag und schlechter Formatierung, bin am Ipad.
    Mfg: Gather
    Private Nachrichten bezüglich VB-Fragen werden Ignoriert!


    Benutze, image.fromfile
    Mfg: Gather
    Private Nachrichten bezüglich VB-Fragen werden Ignoriert!


    ...in den settings als string.
    msdn.microsoft.com/en-us/library/4sahykhd.aspx
    Mfg: Gather
    Private Nachrichten bezüglich VB-Fragen werden Ignoriert!


    OK, ich habs jetzt so aber es funktionert trotzdem nicht, weil System.Drawing.Bitmap nicht als Typ in den Settings existtiert

    VB.NET-Quellcode

    1. Private Sub BildAlsHintergrundEinfügenToolStripMenuItem_Click(sender As System.Object, e As System.EventArgs) Handles BildAlsHintergrundEinfügenToolStripMenuItem.Click
    2. OpenFileDialog2.ShowDialog()
    3. Dim image1 As Bitmap = _
    4. CType(Image.FromFile(OpenFileDialog2.FileName, True), Bitmap)
    5. Me.BackgroundImage = image1
    6. MenuStrip1.BackgroundImage = image1
    7. My.Settings.hintergrundbild = image1
    8. End Sub


    Value of type 'System.Drawing.Bitmap' cannot be converted to 'String'
    System.Drawing.Bitmap existert aber wie gesagt nicht als Typ für My.Settings
    Dann häng einfach ein .toString dahinter an...
    Mfg: Gather
    Private Nachrichten bezüglich VB-Fragen werden Ignoriert!


    das hilft aber leider auch nur an der stelle...

    beim load event gibts wieder den fehler das string nicht in System.Drawing.Image konvertiert werden kann (was ich mir natürllich schon dachte)

    VB.NET-Quellcode

    1. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    2. Me.BackgroundImage = My.Settings.hintergrundbild
    3. MenuStrip1.BackgroundImage = My.Settings.hintergrundbild
    4. End Sub

    kai996 schrieb:

    VB.NET-Quellcode

    1. Private Sub BildAlsHintergrundEinfügenToolStripMenuItem_Click(sender As System.Object, e As System.EventArgs) Handles BildAlsHintergrundEinfügenToolStripMenuItem.Click
    2. OpenFileDialog2.ShowDialog()
    3. Dim image1 As Bitmap = _
    4. CType(Image.FromFile(OpenFileDialog2.FileName, True), Bitmap)
    5. Me.BackgroundImage = image1
    6. MenuStrip1.BackgroundImage = image1
    7. My.Settings.hintergrundbild = image1
    8. End Sub

    ==>

    VB.NET-Quellcode

    1. Private Sub BildAlsHintergrundEinfügenToolStripMenuItem_Click(sender As System.Object, e As System.EventArgs) Handles BildAlsHintergrundEinfügenToolStripMenuItem.Click
    2. OpenFileDialog2.ShowDialog()
    3. Dim image1 As Bitmap = Image.FromFile(OpenFileDialog2.FileName)
    4. Me.BackgroundImage = image1
    5. MenuStrip1.BackgroundImage = image1
    6. My.Settings.hintergrundbild = OpenFileDialog2.FileName ' das hier ist ein String
    7. End Sub
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!