Problem beim auslesen von Listbox-Items

  • VB.NET

Es gibt 13 Antworten in diesem Thema. Der letzte Beitrag () ist von lauwag.

    Problem beim auslesen von Listbox-Items

    Hallo liebes Forum,

    ich habe ein Problem mit dem auslesen von einer Listbox...
    Ich habe einen Zähler (count), und dieser steigt bei jeder "Runde" um 1.
    Jetzt soll der Zähler aus einer Listbox einen Wert auslesen , und mit einem eingegebenen Text vergleichen.


    Spoiler anzeigen

    VB.NET-Quellcode

    1. If formen_eingabe.Text = Hauptkonsole.ListBox3.Items(count) Then
    2. CheckedListBox2.Items.Add(formen_eingabe.Text, True)
    3. Else
    4. CheckedListBox2.Items.Add(formen_eingabe.Text, False)
    5. End If


    dabei passiert immer das, was unten im Bild zu sehen ist.

    Der Counter (count) ist dabei auf 1, wo der Wert "a" liegt.
    Aber er zeigt immer nur Zeilenumbruch + einen Wert zuviel...


    Bitte um Hilfe

    Laurens
    Bilder
    • Unbenannt.JPG

      8,67 kB, 57×99, 730 mal angesehen
    Hier:
    Spoiler anzeigen

    VB.NET-Quellcode

    1. If count > highest - 1 Then
    2. Button3.Enabled = False
    3. available = False
    4. Else
    5. available = True
    6. Button3.Enabled = True
    7. End If
    8. Vokabelauswertung.Opacity = 0
    9. Vokabelauswertung.Show()
    10. If available = True Then
    11. If formen_eingabe.Text = Hauptkonsole.ListBox3.Items(count) Then
    12. Vokabelauswertung.CheckedListBox2.Items.Add(formen_eingabe.Text, True)
    13. Vokabelauswertung.right = Vokabelauswertung.right + 1
    14. Vokabelauswertung.Label2.Text = Vokabelauswertung.right
    15. Vokabelauswertung.Label3.Text = Vokabelauswertung.wrong
    16. Else
    17. Vokabelauswertung.CheckedListBox2.Items.Add(formen_eingabe.Text, False)
    18. Vokabelauswertung.wrong = Vokabelauswertung.wrong + 1
    19. Vokabelauswertung.Label2.Text = Vokabelauswertung.right
    20. Vokabelauswertung.Label3.Text = Vokabelauswertung.wrong
    21. End If
    22. If übersetzung_eingabe.Text = Hauptkonsole.ListBox2.Items(count) Then
    23. Vokabelauswertung.CheckedListBox1.Items.Add(übersetzung_eingabe.Text, True)
    24. Vokabelauswertung.right = Vokabelauswertung.right + 1
    25. Vokabelauswertung.Label2.Text = Vokabelauswertung.right
    26. Vokabelauswertung.Label3.Text = Vokabelauswertung.wrong
    27. Else
    28. Vokabelauswertung.CheckedListBox1.Items.Add(übersetzung_eingabe.Text, False)
    29. Vokabelauswertung.wrong = Vokabelauswertung.wrong + 1
    30. Vokabelauswertung.Label2.Text = Vokabelauswertung.right
    31. Vokabelauswertung.Label3.Text = Vokabelauswertung.wrong
    32. End If
    33. Else
    34. Vokabelauswertung.Opacity = 1
    35. End If
    36. count = count + 1
    37. Label8.Text = count
    38. Label10.Text = highest
    39. Label5.Text = Hauptkonsole.Listbox1.Items(count)
    40. 'textboxen löschen
    41. übersetzung_eingabe.Clear()
    42. formen_eingabe.Clear()
    43. 'zähler aktualisieren
    Zunächst würde ich zumindest den Code

    VB.NET-Quellcode

    1. If available = True Then
    2. ' ...
    3. End If
    in der Klasse Vokabelauswertung laufen lassen.
    Wie ist
    Vokabelauswertung deklariert?
    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!

    VB.NET-Quellcode

    1. Class Vokabelauswertung
    2. ' ...
    3. End Class
    oder

    VB.NET-Quellcode

    1. Dim Vokabelauswertung As MyVokabelauswertung
    Falls ersteres, greift

    VB.NET-Quellcode

    1. Vokabelauswertung.Show()
    nicht (hier ist VB leider ein wenig inkonsistent).

    VB.NET-Quellcode

    1. Class Vokabelauswertung
    2. ' ...
    3. End Class
    4. Class Form1
    5. Private dlgVA as Vokabelauswertung
    6. Sub xxx()
    7. If dlgVA Is Nothing OrElse dlgVA.IsDisposed Then
    8. dlgVA = New Vokabelauswertung
    9. End If
    10. If Not dlgVA.Visible Then
    11. dlgVA.Show()
    12. End If
    13. ' hier den restlichen Code
    14. End Sub
    15. End Class
    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!
    Tschuldige wenn ich so zwischen platze, aber arbeitet man, wenn man die letzte Stelle der Listbox abfragt nicht mit -1 (weil sie ab 0 und nicht ab 1 gezählt wird).
    Ich kam da rauf als du sagtest, du würdest A erwarten und B erhalten.

    //edit: Und bitte Option Strict anschalten, eigentlich müsste hinter dem Listbox.Items ein .ToString stehen (oder CStr benutzen).

    RodFromGermany schrieb:

    Wie sieht denn die gesamte Zeile aus?

    Hast Du ein Schriftsteller-Programm geschrieben oder so?
    "und" habe ich in Deiner Vorgabe nicht gesehen. :S
    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!
    Ja also das Problem ist ja, dass ich ein zweizeiliges Ergebnis erhalte,
    obwohl ich ein einzeilieges brauche,und auch angefordert habe.
    Zusätzlich zeigt der PC nicht "a" und bei dem nächsten klick "b" an, sondern
    "

    b" und beim nächsten klick
    "

    c" an...
    Das ist das Problem.
    Ich versuche ja nur, den einen Wert anzuzeigen, und den anderen mit einer Listbox zu vergleichen.

    Naja, das ist wohl schwieriger als ich gedacht habe...


    Laurens