ListView1.FocusedItem Problem!

  • VB.NET
  • .NET (FX) 1.0–2.0

Es gibt 14 Antworten in diesem Thema. Der letzte Beitrag () ist von VaporiZed.

    ListView1.FocusedItem Problem!

    Moin! :)
    Ich möchte gerne ermitteln, ob ein Item in einem ListView ausgewählt ist.
    Leider kommt immer eine Fehlermeldung!
    BIG THX

    VB.NET-Quellcode

    1. If Me.ListView1.FocusedItem.Text = "" Then
    2. ' kein Item ausgewählt
    3. Else
    4. ' Item ausgewählt
    5. End If


    Fehlermeldung:
    Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt.


    --
    edit:

    VB.NET-Quellcode

    1. Try
    2. Dim test As String = Me.ListView1.SelectedItems.Item(0).Text
    3. Catch
    4. Exit Sub
    5. End Try
    6. MsgBox(Me.ListView1.FocusedItem.Text)

    Ich habe das Problem so gelöst.
    Dies ist aber sicherlich nicht die saubere Variante.
    Wer kann mir erklären, wie man so was am besten programmiert!

    Visual Basic.NET 8o
    MS-SQL
    8o

    Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von „Marcus Gräfe“ ()

    @EaranMaleasi
    Vielen Dank, ich habe alles getestet im ListView1.FocusedItem,
    leider bekomme ich ständig eine Fehlermeldung! ;(
    Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt.
    Visual Basic.NET 8o
    MS-SQL
    8o

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Marcus Gräfe“ ()

    @Cheffboss In so nem Fall ist es immer wichtig, rauszukriegen, was da eigentlich Nothing ist.
    Markiere einzeine Teile Deiner Variablen (z.B. Me.ListView1.FocusedItem des Terms Me.ListView1.FocusedItem.Text) und drück auf Shift+F9, da wird Dir der Wert angezeigt.
    Lerne zu Debuggen: Debuggen, Fehler finden und beseitigen.
    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!
    @an alle
    Vielen Dank. :)
    Ich habe das Problem nun lösen können.

    VB.NET-Quellcode

    1. Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
    2. If Me.ListView1.SelectedIndices.Count <> 0 Then
    3. MsgBox(Me.ListView1.FocusedItem.Text)
    4. End If
    5. End Sub
    Visual Basic.NET 8o
    MS-SQL
    8o
    @EaranMaleasi
    Dies ist sehr schwer zum erklären.
    Wenn ich einen Wert makiert habe kommt dieser Wert als Ausgabe.
    Wenn ich aber keinen Wert makiert habe, kommt der letze Wert zur Ausgabe.
    Habe ein Bild eingefügt!
    Ich hoffe ich habe dies gut erklärt!
    :thumbsup:
    Bilder
    • bug.png

      14,89 kB, 492×613, 107 mal angesehen
    Visual Basic.NET 8o
    MS-SQL
    8o
    Dieses Problem tritt mit Deinem Code auf oder dem aus Post#8 von EaranMaleasi?
    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.
    @Cheffboss In dem Moment, wo das ListView einmal den Fokus hatte, existiert das FocusedItem.
    Ist es vielleicht doch an der Zeit, den Dinosaurier-Zoo zu verlassen und mit dem DataGridView zu beginnen?
    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!
    Falls Du mit den ListView vorerst weitermachen willst (es gibt dafür kaum Gründe) und MultiSelect = False hast, arbeite statt mit FocusedItem mit SelectedItems(0). Wieviele Items sollen denn gleichzeitig ausgewählt werden können?
    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.
    @VaporiZed
    Ich verwende MultiSelect = False , da nur 1 Item ausgewählt werden soll.

    @RodFromGermany
    Ich arbeite bis jetzt immer mit ListViews.
    Wieso Dinosaurier-Zoo, ist ein ListViews veraltet?
    Ich werde mir das DataGridView demächst genauer ansehen.
    Visual Basic.NET 8o
    MS-SQL
    8o
    1. Dann sollte der Wechsel von FocusedItem auf SelectedItems(0) den Code aus Post#8 und #9 beseitigen. Gut, bei Post#8 kommt dann eben If ListView1.SelectedItems IsNot Nothing Then oder ListView1.SelectedItems.Count > 0 Then, aber sonst ginge es.
    2. Ja, ein LV ist ein Dino. Ein DGV ist in vielerlei Hinsicht besser, leistungsfähiger, flexibler als ein LV. Und datenbindbar. Aber das ist ein Thema für später.
    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.