StringCollection bei My.Settings ein Array zuweisen

  • VB.NET

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von Fonsi.

    StringCollection bei My.Settings ein Array zuweisen

    Moin,

    ich benötige bei den My.Settings ein Array, welches String-Werte abspeichert. Dazu hab ich dort "Berufe" als StringCollection deklariert. Abrufen kann ich die Werte mit

    VB.NET-Quellcode

    1. My.Settings.Berufe(i)


    Will ich jetzt Werte aus einer ListBox darin speichern, erhalte aber den Fehler
    ArgumentOutOfRangeException. Der Index lag außerhalb des Bereichs. Er muss nicht negativ und kleiner als die Auflistung sein. Parametername: index.


    Mein Code:

    VB.NET-Quellcode

    1. For i As Integer = 0 To lst_Berufe.Items.Count - 1
    2. My.Settings.Berufe(i) = lst_Berufe.Items(i).ToString
    3. Next


    Der Fehler tritt bereits beim ersten Element (also i = 0) auf, ich komm nicht drauf, warum ...
    Vielleicht solltest Du die Einzelwerte der Settings im Designer initialisieren.
    Besser wäre es, Settings hier nicht zu verwenden, sondern eine eigene Datei (xml, ini), die Du nach Belieben zur Laufzeit bearbeiten kannst.
    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!
    Naja, das sind nur 2-5 Werte, dafür will ich nicht ne extra Datei anlegen.
    Es gibt bei den My.Settings diese StringCollection, also muss man der ja auch Werte zuweisen können :P

    Edit: Und ich weiß auch jetzt wie ^^.

    VB.NET-Quellcode

    1. For i As Integer = 0 To lst_Berufe.Items.Count - 1
    2. My.Settings.Berufe.Add(lst_Berufe.Items(i).ToString)
    3. Next


    War doch easy ... hatte wohl noch nicht genug Kaffee heut morgen :wacko:

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Fonsi“ ()

    Hast Du

    VB.NET-Quellcode

    1. My.Settings.Reload

    aufgerufen?
    Sieh Dir doch bitte mal My.Settings nach Reload im Debugger an.
    Bei mir ist eine String-Collection nach Reload nämlich Nothing.
    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!

    RodFromGermany schrieb:

    Hast Du

    VB.NET-Quellcode

    1. My.Settings.Reload

    aufgerufen?
    Sieh Dir doch bitte mal My.Settings nach Reload im Debugger an.
    Bei mir ist eine String-Collection nach Reload nämlich Nothing.


    Du hast Recht. Nachdem ich der StringCollection die Werte zugewiesen hab, hab ich noch

    VB.NET-Quellcode

    1. My.Settings.Save()

    hinzugefügt. Dann funktionierts ;).