2016-05-22 9 views
1

Ich mache eine Desktop-Anwendung in C#, in dem, wenn der Benutzer bestimmten Namen des Hintergrunds aus der Menüleiste auswählt, dann der Hintergrund soll diesen erforderlichen Hintergrund. Das Problem ist, dass ich die Benutzereingabe nicht speichern kann, habe ich Einstellungen versucht, aber ich kann "system.drawing.image" in den Einstellungen nicht finden, so gibt es irgendeine Weise, die ich den geänderten Hintergrund des Benutzers speichern kann? Keine externen Hintergründe, die ein Benutzer ändern darf, nur die im Ressourcenordner. Hier ist mein Code, der einen Fehler anzeigt, dass system.drawing.color nicht von drawing.image stattfinden kann.So speichern Sie Hintergrundbild auf Formular Schließen Sie in C#

using System; 
    using System.Collections.Generic; 
    using System.ComponentModel; 
    using System.Data; 
    using System.Drawing; 
    using System.Linq; 
    using System.Text; 
    using System.Windows.Forms; 

    namespace TAC 
    { 
     public partial class Form1 : Form 
    { 
    public Form1() 
    { 
     InitializeComponent(); 
    } 

    private void Form1_Load(object sender, EventArgs e) 
    { 
     panel1.Location = new Point(165, 157); 
     panel2.Location = new Point(289, 158); 
     panel3.Location = new Point(47, 275); 
     panel4.Location = new Point(47, 402); 
     this.BackgroundImage = Properties.Settings.Default.FormImage; 
    } 

    private void bLUEToolStripMenuItem_Click(object sender, EventArgs e) 
    { 
     this.BackgroundImage = TAC.Properties.Resources.tex1; 
    } 

    private void gREENToolStripMenuItem_Click(object sender, EventArgs e) 
    { 
     this.BackgroundImage = TAC.Properties.Resources.tex2; 
    } 

    private void oRANGEToolStripMenuItem_Click(object sender, EventArgs e) 
    { 
     this.BackgroundImage = TAC.Properties.Resources.tex3; 
    } 

    private void rEDToolStripMenuItem_Click(object sender, EventArgs e) 
    { 
     this.BackgroundImage = TAC.Properties.Resources.tex4; 
    } 

    private void pURPLEToolStripMenuItem_Click(object sender, EventArgs e) 
    { 
     this.BackgroundImage = TAC.Properties.Resources.tex5; 
    } 

    private void Form1_FormClosing(object sender, FormClosingEventArgs e) 
    { 
     Properties.Settings.Default.FormImage = this.BackgroundImage; 
    } 
    } 
    } 

Antwort

2

Verwenden Methode speichern Einstellungen

Properties.Settings.Default.Save(); 

speichern Wenn Sie ein Bild, um die Einstellungen hinzufügen möchten:

neue Einstellung mit Typ-String hinzufügen und verwenden Sie wie folgt aus:

ein Speichern Bild zu Einstellung (wenn Sie das Formular schließen)

MemoryStream ms = new MemoryStream(); 
Propertis.Resources.MyImage.Save(ms,ImageFormat.Jpeg); 
Properties.Settings.Default.BackImg = Convert.ToBase64String(ms.ToArray()); 
Properties.Settings.Default.Save(); 

Und Bild von der Einstellung lesen und Hintergrund (in Form Last)

string img = Properties.Settings.Default.BackImg ; 
byte[] i = Convert.FromBase64String(img); 
this.BackgroundImage = Image.FromStream(new MemoryStream(i)); 

Wie benutzerdefinierte Einstellungen hinzufügen?

http://www.codeproject.com/Articles/29130/Windows-Forms-Creating-and-Persisting-Custom-User

+0

Ich habe den Code speichern Sie haben hier auf Formular Schließung gegeben und die Verwendung Code auf Formular Laden und erste, das Semikolon gegeben Ausnahmefehler hinzugefügt, wenn ich versuche, meine Anwendung zu debuggen, und zweitens soll ich diese Methode tun dreimal für drei verschiedene Bilder? wie es gibt eine Dropdown-Liste, die ich hinzugefügt habe und von dort wählt der Benutzer Bild, wenn ein Bild ausgewählt ist, dann beim Schließen des Formulars sollte es gespeichert werden und wenn das Formular wieder geöffnet wird, sollte das ausgewählte Bild der Hintergrund sein. –

+0

Hier herunterladen [My Project Files] (https://app.box.com/s/uujxlu26xgb1o1mvu9w6tavxm0fjfsfj) und bearbeiten Sie sie bitte, damit ich verstehe, was zu tun ist. –

+0

Ich weiß nicht genau, was Sie wegen Englisch gesagt haben.Sie können Code in Methode für die Wiederverwendung einfügen: SaveToSetting (Bild i) .Sie können jedes Bild, das der Benutzer ausgewählt hat, im Hintergrund einstellen. Dann, wenn Sie schließen möchten, speichern Sie es in den Einstellungen.und in Formular laden lesen von – mohsen

Verwandte Themen