erstmaliges Starten Auswahlfenster mit 3 Optionen, Auswahl speichern und im Programm dann immer auf diese Auswahl zurückgreifen

  • VB.NET

Es gibt 46 Antworten in diesem Thema. Der letzte Beitrag () ist von VB1963.

    VaporiZed schrieb:

    Zwei Grundsatzfragen @zauber777: wieviele Einträge hat denn die ListBox? Und wie bekommt man den Wert des 1. ListBox-Eintrag?

    Die ListBox hat genau 3 Einträge. Die Auswahl (der Index - 1, 2 oder 3) wird per Databinding in die Einstellungen gespeichert. Auf Grund dessen, dass es in den Einstellungen gespeichert wird, dachte ich auch, dass ich es dann gleichermaßen wieder auslesen kann. Daher denke ich, dass ich durch den gespeicherten Index den ListBox-Eintrag erhalte!?!?
    Die Einträge sind auch schon per ListBox-Eigenschaft (Items) vorgegeben.

    zauber777 schrieb:

    Die Auswahl (der Index - 1, 2 oder 3)
    ist eine Annahme Deinerseits, die falsch ist, da Indices in VB.Net grundsätzlich nicht bei 1 beginnen. Vergiss bitte nicht, die korrekte Fehlermeldung nochmals zu posten, wie von EdR gebeten.
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Häufig von mir verwendete Abkürzungen: CEs = control elements (Labels, Buttons, DGVs, ...) und tDS (typisiertes DataSet)
    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht in den Spekulatiusmodus gehen.
    hmm ok, dann weiss nun leider überhaupt nicht, wie ich nun die gespeicherte Auswahl wieder anzeige in der ListBox.

    Die Fehlermeldung habe ich nun via Try-Catch ausgelesen : "InvalidArgument=Value mit dem Wert 3 ist für SelectedIndex ungültig. Parametername: SelectedIndex"

    Wie ihr mir schon mitgeteilt habt, bestätigt nun dies die Fehlermeldung --> Es funktioniert nicht nach meiner Theorie mit dem Index ;.(
    Nun stehe ich auf dem Schlauch und weiss nicht mehr weiter.
    Probier's mit
    "Aus 3 mach 2":

    VB.NET-Quellcode

    1. If My.Settings.Einstellung = 0 Then
    2. ListBox1.SelectedIndex = 0
    3. ElseIf My.Settings.Einstellung = 1 Then
    4. ListBox1.SelectedIndex = 1
    5. ElseIf My.Settings.Einstellung = 2 Then
    6. ListBox1.SelectedIndex = 2
    7. End If

    Oder kurz: ListBox1.SelectedIndex = My.Settings.Einstellung
    aber ganz ehrlich: "ListBox1"? "My.Settings.Einstellung"? An Deiner Kreativität mit Namensgebung musst Du noch arbeiten ;)
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Häufig von mir verwendete Abkürzungen: CEs = control elements (Labels, Buttons, DGVs, ...) und tDS (typisiertes DataSet)
    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht in den Spekulatiusmodus gehen.
    @zauber777 Wenn ich diesen Thread überfliege stelle ich fest, dass wir hier über VB.NET reden.
    Wenn das so ist, ändere bitte den Titel dieses Deines Threads entsprechend :!:
    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).
    VB-Fragen über PN / Konversation werden ignoriert!

    zauber777 schrieb:

    hmm ok, dann weiss nun leider überhaupt nicht, wie ich nun die gespeicherte Auswahl wieder anzeige in der ListBox.
    Am besten du bindest die Listbox.SelectedIndex-Eigenschaft gleich direkt an deine SettingsEigenschaft.
    Dann brauchst du dich nie mehr um die Zuweisung des SelectedIndex mehr kümmern, dass geschieht dann von selbst...
    Die Applicationbinding kann man leider nicht direkt über den Formseditor zusammenklicksen, sondern muss es nur 1x perCode angeben.
    Am Besten im Konstruktor der Formklasse...

    VB.NET-Quellcode

    1. Public Sub New()
    2. InitializeComponent()
    3. DeineListBox.DataSource = {DeineItems} 'muss unbedingt vor Applicationbinding festgelegt werden, sonst funktioniert die SelectedIndex-Übergabe nicht richtig!
    4. DeineListBox.DataBindings.Add(New Binding("SelectedIndex", My.MySettings.Default, "DeineSettingsEigenschaft", True, DataSourceUpdateMode.OnPropertyChanged))
    5. End Sub