Combobox Text richtig laden

  • VB.NET

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von Fibonacci.

    Combobox Text richtig laden

    Hey,
    ich habe eine Combobox, dessen Text beim Schließen des Programms gespeichert wird. Die Combobox hat standardmäßig folgende Werte zur Auswahl: 50, 100, 150, aber man kann auch selber etwas eintippen. Das Speichern von den vorgegebenen Werten klappt auch supi, aber wenn ich zB. 65 oder 135 eingebe und neustarte, so ist dieser Wert gegen 100 ersetzt worden.

    Wie kann man das verhindern bzw. eigenen Text speichern?

    Beste Grüße,
    Fibonacci
    Du kanst erstmal die User-Texte per ComboBox1.Items.Add() hinzufügen.

    Das Speichern würd ich in einer TextDatei machen.

    Dann läste alle Items in der Textdatei speichern, 1 Item pro Zeile.
    Beim Start die ComboBox leeren, und dann lieste die Items aus der TextDatei wieder ein.
    Ich hoffe ich kann dir damit helfen:
    (WENN du in My.Settings speichern möchtest)

    Du erstellst ein Setting.System.CollectionSpecializised[...]
    mit dem Wert:

    VB.NET-Quellcode

    1. <?xml version="1.0" encoding="utf-16"?>
    2. <ArrayOfString xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" />


    Speichern

    VB.NET-Quellcode

    1. 'Button klick oder so
    2. Combobox1.items.add(Combobox1.text)
    3. My.Settings.Test.add(Combobox1.text)
    4. My.Settings.save

    Auslesen:

    VB.NET-Quellcode

    1. Dim cnt As Integer = My.Settings.test.Count
    2. Dim x As Integer
    3. For x = 0 To cnt - 1
    4. Combobox1.Items.Add(My.Settings.test.Item(x))
    5. Next



    Sollte gehen, habs aber gerade frei aus dem Kopf genommen also nicht wundern falls was buggt.

    Bedanken nicht vergessen^^
    Mfg: Gather
    Private Nachrichten bezüglich VB-Fragen werden Ignoriert!


    Moin


    VB.NET-Quellcode

    1. Dim sWriter as new IO.StreamWriter("pfad")
    2. For i = 0 to Combobox1.Items.Count -1
    3. sWriter.WriteLine(Combobox1.Items(i).Text")
    4. Next
    5. sWriter.Close



    Da werden auch die start werte mit geschrieben, bzw dann gelesen, also machst du es so:

    Du fragst ab ob die TxtDatei vorhanden ist, wenn ja (Sind ja auch alle standart werte mit drin) lädst du diese, wenn nicht fügst du einfach mit Combobox1.Items.Add die standartwerte hinzu.
    Um zu prüfen ob die Datei existiert:

    VB.NET-Quellcode

    1. IO.File.Exists("pfad")


    Grüße
    Ich würd ja ne TXT-Datei nehmen, der Code wäre ungefähr folgender:

    VB.NET-Quellcode

    1. Private Sub Form1_Load()
    2. ComboBox1.Items.Clear()
    3. Dim ITEMS() As String = IO.File.ReadAllLines("C:\datei.txt)
    4. ComboBox1.Items.AddRange(ITEMS)
    5. End Sub
    6. Private Sub Button1_Click()
    7. Dim ITEMS_WRITE As New IO.StreamWriter(C:\datei.txt", False)
    8. For i As Long = 0 To ComboBox1.Items.Count - 1
    9. ITEMS_WRITE.WriteLine(ComboBox1.Items.Item(i)))
    10. Next
    11. ITEMS_WRITE.Close()
    12. End Sub


    Der BEDANKEN-Button freut sich gedrückt zu werden, wenn ich dir geholfen habe! ;)

    EDIT//

    Ich war zu spät, ThuCommix war schon schneller :thumbup:
    Habe den Text nun als eigenes Item hinzufügen lassen (also auch beim Speichern/Laden), funktioniert auch, nur wenn ich es dann anklicke wird der Text auf "" geändert und das Item wird überschrieben... Liegt aber glaube ich an meinem Code...
    Danke für die schnelle Hilfe!