Listview-Auswahl funktioniert nicht

  • VB.NET
  • .NET 5–6

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

    Listview-Auswahl funktioniert nicht

    Moin!
    Ich versuche gerade eine Suchfunktion für eine Listview zu erstellen. Ich komme jetzt jedoch nicht weiter.
    Das ist mein Code:

    VB.NET-Quellcode

    1. Dim foundItem As ListViewItem = Form2.ListView1.FindItemWithText(TextBox1.Text, False, 0, True)
    2. Form2.ListView1.Items(foundItem.Index.ToString).Selected = True

    In der Textbox1 ist die Anfrage...
    Jedoch bekomme ich dann immer eine Fehlermeldung:
    System.NullReferenceException: "Object reference not set to an instance of an object."
    Was mache ich falsch?
    LG

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

    Für welchen Bestandteil bekommst Du ein Nothing? Da kommen 5-6 Kandidaten infrage.
    Bevor es Missverständnisse gibt: Arbeitest Du wirklich mit .NET 6?
    Mit welcher Zeile hast Du die Variable Form2 definiert?
    Beschreib mal bitte, was Du glaubst, dass in folgendem Abschnitt passiert: Form2.ListView1.Items(foundItem.Index.ToString)
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    Ich muss mich korrigieren: .NET 5 (Hatte mich verklickt)
    In Form2 befindet sich die Listview. Die Suche ist dann in einer anderen...
    Wenn ich es richtig verstanden habe, ist das Nothing für foundItem.Index.ToString.
    Der Abschnitt soll dazu führen, dass das Item, das gefunden wurde, ausgewählt wird.
    Das Problem ist, dass die Ausführung der Suche falsch ist. Mit Form2.ListView1.Items(foundItem.Index.ToString) suchst Du nach einem Item mit einem bestimmten Key. Dieser Key muss laut Deinem Code sein: der Index des von foundItem innerhalb des ListViews als Text. Ich glaube aber kaum, dass Du nach einem Key suchen willst, sondern Du willst das Item mit dem bestimmten Index selektieren.
    Es gibt zwei Wege:
    1. Du machst es kompliziert, aber richtig mit: Form2.ListView1.Items(foundItem.Index).Selected = True, also ohne das ToString, weil mit ToString eine andere Suchmethode aufgerufen wird als ohne das ToString.
    2. Oder Du machst es einfach, mit foundItem.Selected = True
    Ja, das mit Form2 dachte ich mir schon. Die Verwendung von impliziten Form-Instanzen führt früher oder später ins Verderben … Das ist aber ein anderes Thema.
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.

    Peaceman schrieb:

    VB.NET-Quellcode

    1. Form2.ListView1
    Schau mal hier rein und verstehe das, auch wenn das für Framework geschrieben wurde:
    Dialoge: Instanziierung von Forms und Aufruf von Dialogen
    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!