Außerdem ein anderes Problem bei der Richtextbox funktioniert das ohne probleme jetzt. Bei einer listbox nicht wieso ? gibt es da etwas zu beachten?
VB Forms My Settings Save funktioniert nicht
- VB.NET
Sie verwenden einen veralteten Browser (%browser%) mit Sicherheitsschwachstellen und können nicht alle Funktionen dieser Webseite nutzen.
Hier erfahren Sie, wie einfach Sie Ihren Browser aktualisieren können.
Hier erfahren Sie, wie einfach Sie Ihren Browser aktualisieren können.
Es gibt 37 Antworten in diesem Thema. Der letzte Beitrag () ist von Dksksm.
-
-
@Moritzgs1 Gib mal
listBox1.Text
in einerMessageBox
aus.
Lerne zu debuggen:
Debuggen, Fehler finden und beseitigen
=====
Und:
Keine Fragen zu Programmierung (auch wenn Deine Frage C# ist) in den PN!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! -
-
@Moritzgs1 Mit welchem Code bekommst Du denn den Text in Deine
ListBox
?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! -
-
@Moritzgs1 Missverständnis.
Wie bekommst Du den Inhalt, den Du speichern willst, in die ListBox?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! -
Bei jedem klick auf den Button wird der eintrag aus der textbox in die listbox eingefügt.
Aktueller Kompletter Code meines Webbrowsers mit ein paar spielereien etc:
C#-Quellcode
- using System;
- using System.Windows.Forms;
- namespace WebBrowser
- {
- public partial class Browser : Form
- {
- public static object Url { get; private set; }
- public Browser()
- {
- InitializeComponent();
- }
- private void Form1_Load(object sender, EventArgs e)
- {
- webBrowser1.Navigate("www.Bkukr.de"); //Lädt Bkukr als Startseite
- textBox1.Text = "www.bkukr.de";
- webBrowser1.ScriptErrorsSuppressed = true; //Verhindert Script error fehler
- richTextBox1.Text = Properties.Settings.Default.Speicher;
- listBox1.Text = Properties.Settings.Default.verlauf;
- }
- private void Button1_Click(object sender, EventArgs e)
- {
- webBrowser1.Navigate(textBox1.Text);
- listBox1.Items.Add(textBox1.Text);
- Properties.Settings.Default.verlauf = listBox1.Text;
- Properties.Settings.Default.Save();
- }
- private void Buttonzurück_Click(object sender, EventArgs e)
- {
- webBrowser1.GoBack();
- }
- private void ButtonVor_Click(object sender, EventArgs e)
- {
- webBrowser1.GoForward();
- }
- private void BeendenToolStripMenuItem_Click(object sender, EventArgs e)
- {
- Application.Exit(); //Beendet den Browser
- }
- private void DruckenToolStripMenuItem_Click(object sender, EventArgs e)
- {
- webBrowser1.Print(); //Drucken
- webBrowser1.ShowPrintDialog();
- webBrowser1.ShowPrintPreviewDialog();
- }
- private void SpeichernToolStripMenuItem_Click(object sender, EventArgs e)
- {
- webBrowser1.ShowSaveAsDialog(); //Seite Speichern
- }
- private void Button2_Click(object sender, EventArgs e)
- {
- webBrowser1.Navigate("www.Bkukr.de"); // Geht zur Startseite
- textBox1.Text = "www.bkukr.de";
- }
- private void CreditsToolStripMenuItem_Click_1(object sender, EventArgs e)
- {
- MessageBox.Show("Dieser Browser wurde erstellt von einem Menschen");
- }
- private void BrowserHilfeToolStripMenuItem_Click(object sender, EventArgs e)
- {
- MessageBox.Show("Wenn sie hilfe benötigen melden sie sich " +
- "unter der Email: hilfe@hilfe.de");
- }
- private void FeedbackSendenToolStripMenuItem_Click(object sender, EventArgs e)
- {
- MessageBox.Show("Wir freuen uns über Feedback dafür einfach " +
- "an die Email feedback@feedback.de schreiben");
- }
- private void EntwicklerModusToolStripMenuItem_Click(object sender, EventArgs e)
- {
- MessageBox.Show("Dieser Bereich ist nur für Entwickler.");
- }
- private void VerlaufÖffnenToolStripMenuItem_Click(object sender, EventArgs e)
- {
- button3.Visible = true; //öffnet den Verlauf
- listBox1.Visible = true;
- button6.Visible = true;
- }
- private void VerlaufLeerenToolStripMenuItem_Click(object sender, EventArgs e)
- {
- listBox1.Items.Clear(); //leert den Verlauf
- }
- private void Button3_Click(object sender, EventArgs e)
- {
- listBox1.Visible = false; //schließt den Verlauf
- button3.Visible = false;
- button6.Visible = false;
- }
- private void LoginToolStripMenuItem_Click(object sender, EventArgs e)
- {
- Login1 loginform = new Login1();
- loginform.Show();
- }
- private void TextBox1_KeyDown(object sender, KeyEventArgs e)
- {
- webBrowser1.Navigate(textBox1.Text);
- }
- private void Button4_Click(object sender, EventArgs e)
- {
- Properties.Settings.Default.Speicher = richTextBox1.Text;
- Properties.Settings.Default.Save();
- }
- private void NotizToolStripMenuItem_Click(object sender, EventArgs e)
- {
- panel1.Visible = true;
- }
- private void Button5_Click(object sender, EventArgs e)
- {
- panel1.Visible = false;
- }
- private void ListBox1_SelectedIndexChanged(object sender, EventArgs e)
- {
- Properties.Settings.Default.verlauf = listBox1.Text;
- Properties.Settings.Default.Save();
- }
- private void Button6_Click(object sender, EventArgs e)
- {
- Properties.Settings.Default.verlauf = listBox1.Text;
- Properties.Settings.Default.Save();
- }
- private void TestToolStripMenuItem_Click(object sender, EventArgs e)
- {
- MessageBox.Show(listBox1.Text);
- }
- }
- }
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Moritzgs1“ ()
-
Moritzgs1 schrieb:
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! -
-
@Moritzgs1 Was unterscheidet Deinen Code, den Inhalt der ListBox in den Settings abzulegen vom Code der Befüllung?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! -
-
@Moritzgs1 Langsam beginnst Du zu begreifen.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! -
Habe aktuell dieses zum speichern des verlaufs: Quasi so wie bei der sache mit der richtextbox.
Und habe zusätzlich noch in der Form load das zum laden des speichers allerdings funktioniert es komischerweise bei der listbox nicht.
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Moritzgs1“ ()
-
Eine ListBox hat Items, mit denen man also die ListBox befüllt (
listBox1.Items.Add(textBox1.Text);
). Dein Ansatz mitlistBox1.Text =
ist damit zum Scheitern verurteilt.
Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.
Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln. -
-
Mal ganz ehrlich, etwas mehr suchen und du hättest alles gefunden. Sowohl hier als auch ansonsten im Web.
1. Settings kann man den Steuerelementen meistens direkt und ohne diese ganze manuelle Hin- und Her-Zuweiserei per Code direkt in den Eigenschaften zuweisen. Das ist nicht nur viel weniger Fehlerträchtig, es spart auch Zeit und (selbstgeschriebene) Codezeilen.
Für alle "einfachen" Datentypen ist also eine direkte Zuweisung per Eigenschaft möglich, bei Objekten sie die Listbox benötigt, muss man was basteln. Das was ich da gebastelt habe ist übrigens nicht von mir, so fleißig war ich gar nicht, sondern habe es hier gefunden: ListBox Items in My.Settings speichern
2. Die Settings speichert man nicht bei jeder Veränderung, sondern einmal beim Programmende.
Also Step 1, die Settings selbst
Step 2, die Zuweiung der Setting in die Steuerelemente-Eigenschaft
Step 3, der erste Programmlauf
Step 4, eine kleine Veränderung eines Textes
Step 5 nach Programmende, dort wo die Benutzersetting dieses Programms gespeichert worden sind ansehen
Und hier noch der Code
C#-Quellcode
- private void Form1_FormClosing(object sender, FormClosingEventArgs e)
- {
- System.Collections.Specialized.StringCollection liste = new System.Collections.Specialized.StringCollection();
- foreach (string eintrag in listBoxTest.Items)
- liste.Add(eintrag);
- SettingsTestApp.Properties.Settings.Default.ListBoxTEst = liste;
- SettingsTestApp.Properties.Settings.Default.Save();
- }
- private void Form1_Shown(object sender, EventArgs e)
- {
- foreach (string eintrag in SettingsTestApp.Properties.Settings.Default.ListBoxTEst)
- listBoxTest.Items.Add(eintrag);
- }
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Dksksm“ ()
-
Moritzgs1 schrieb:
Ansonsten verstehe den Post von @Dksksm.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! -
Nachtrag noch:
EinSetting.Reload
nach einemSetting.Save
ist absolut unsinnig. MitSetting.Save
wurde der Speicher ja in die lokale Usersetting geschrieben, sofern sie sich von den Setting unterscheiden, die im Programm selbst hinterlegt sind.
DasSetting.Reload
macht dann Sinn, wenn man etwas an den Werten die an die Settings gebunden sind, verändert hat, diese Änderung aber noch nicht geschrieben ist und der in den Setting-Dateien gespeicherte Zustand wieder hergestellt werden soll. Es stellt also den Zustand wieder her, der beim letztenSetting.Save
gesichert wurde. Ist einSetting.Save
aber unmittelbar zuvor gewesen, dann ist der Zustand ja identisch, dasSetting.Reload
ist also nur "Zeitverplemperung"
EinSetting.Load
gibt es übrigens gar nicht und ist auch nicht nötig, die letzt gespeicherten Settings werden auch bei C# immer gelesen. Nur gespeichert wird nicht automatisch.
Es gibt noch dasSetting.Reset
, damit werden die vom Benutzer gemachten Änderungen gelöscht und das was der Entwickler in die Settings geschrieben hat wird wiederhergestellt. Das passiert auch direkt auf Datei-Ebene, kann man also im AppData/Local gut beobachten.
-
Benutzer online 1
1 Besucher
-
Ähnliche Themen
-
MovingHead250 - - Sonstige Problemstellungen
-
Windoof Vista - - Sonstige Problemstellungen
-
Timtim - - Sonstige Problemstellungen
-
-
5 Benutzer haben hier geschrieben
- Moritzgs1 (18)
- RodFromGermany (10)
- VaporiZed (7)
- Dksksm (2)
- mrMo (1)