Viele Elemente leichter aufrufen?



  • Dann zeig mal deinen Speicher- und Ladecode.



  • public void IniWriteValue(string Section, string Key, string Value)
            {
                WritePrivateProfileString(Section, Key, Value, this.Path);
            }
    
            public string IniReadValue(string Section, string Key)
            {
                const int MAX_CHARS = 1023;
                StringBuilder result = new StringBuilder(MAX_CHARS);
                GetPrivateProfileString(Section, Key, "", result, MAX_CHARS, this.Path);
                return result.ToString();
            }
    

    Da. 🙂



  • #Push? :3



  • Du musst schon den Code zeigen, in dem Du die Checkboxen initialisierst.

    Es wird immer nur die checkbox geladen die als erstes ausgeführt wird

    Und bitte eine genauere Fehlerbeschreibung. Was meinst du mit "geladen"? Was meinst Du mit "ausgeführt"?



  • Ja es werden halt die ganzen CheckBoxen gespeichert in eine .ini datei.
    In der .ini steht auch dann überall name=true, bei denen die ich angeklickt habe. Schließe ich das programm, ist immer noch alles auf true. Öffne ich das Programm erneut und dann wird nur eine geladen und der rest in der .ini ist wieder bei name=false...



  • Schön und gut. Nur kann Dir niemand helfen, wenn Du keinen weiteren Code zeigst



  • http://www.codeproject.com/Articles/1966/An-INI-file-handling-class-using-C

    Das ist meine ini methode.
    Was möchtest du sonst noch wissen?

    Es muss ja am laden liegen, weil speichern funktioniert ohne probleme.



  • Dann zeig doch endlich mal den Code der Form*, indem Du die ganzen Checkboxen mit den Werten der Ini initialisierst. Irgendwo speicherst Du dort fälschlicherweise, da

    Öffne ich das Programm erneut und dann wird nur eine geladen und der rest in der .ini ist wieder bei name=false...

    Dateien ändern sich ja nicht von selbst.

    *Kürz einfach alles raus was nichts damit zu tun hat und poste den Rest.



  • Die Checkboxen kriegen beim XML die Attribute:

    Checked="checkedChanged" Unchecked="checkedChanged"
    

    dazu die Methode:

    private void checkedChanged(object sender, EventArgs e)
            {
                ini.IniWriteValue("Main", cb_BlWh.Name, Convert.ToString(cb_BlWh.IsChecked));
                ini.IniWriteValue("Main", cb_Round.Name, Convert.ToString(cb_Round.IsChecked));
                ini.IniWriteValue("Main", cb_Counter.Name, Convert.ToString(cb_Counter.IsChecked));
            }
    

    Und das laden steckt hier:

    private void Window_Loaded(object sender, RoutedEventArgs e)
            {
                timer.Start();
                textName1.Text = ini.IniReadValue("Main", "names1");
                textName2.Text = ini.IniReadValue("Main", "names2");
    
                cb_BlWh.IsChecked = Convert.ToBoolean(ini.IniReadValue("Main", cb_BlWh.Name));
                cb_Round.IsChecked = Convert.ToBoolean(ini.IniReadValue("Main", cb_Round.Name));
                cb_Counter.IsChecked = Convert.ToBoolean(ini.IniReadValue("Main", cb_Counter.Name));
            }
    


  • Zu Beginn des Window_Loaded Events sind die Checkboxen unselektiert. In der Zeile cb_BlWh.IsChecked = Convert.ToBoolean(ini.IniReadValue("Main", cb_BlWh.Name));
    feuert das Event checkedChanged und Du schreibst die aktuellen Werte in die Ini-Datei zurück. Für die restlichen Checkboxes ist das aber noch der Wert "unchecked".

    Abonniere die Events einfach nach der Initialisierung
    oder
    Speichere die Werte erst beim Beenden des Window in eine Datei und nicht bei jeder Änderung.



  • Abonniere die Events einfach nach der Initialisierung

    Davon weiß ich nichts 😕
    Aber danke für die Antwort. Hat mir richtig gut geholfen 🙂

    Danke danke 😃



  • LZx schrieb:

    Abonniere die Events einfach nach der Initialisierung

    Davon weiß ich nichts 😕

    Am Ende des Loaded-Events statt in XAML:
    cb_BlWh.CheckedChanged += checkedChanged;

    Aber die andere Lösung ist sowieso besser. Am Ende der Form alle Daten speichern.

    LZx schrieb:

    Aber danke für die Antwort. Hat mir richtig gut geholfen 🙂

    Danke danke 😃

    Mit Code gibt's i.d.R. recht zügig eine Antwort 😉



  • Ok. Ja danke nochmal 🙂


Anmelden zum Antworten