Listview Spalte makieren

  • VB.NET

Es gibt 10 Antworten in diesem Thema. Der letzte Beitrag () ist von Sebastian.Trzynka.

    Listview Spalte makieren

    Huhu
    Ist es möglich das beim doppelten eintrag er den doppelten Eintrag in der Listview makiert?

    Habe

    VB.NET-Quellcode

    1. ListView1.FullRowSelect = True
    damit er die ganze Spalte schonmal makiert, im moment hab ich es nur mit einer MsgBox das er mir sagt das der Eintrag doppelt ist. Würde aber gern makieren lassen wo es ist.

    Mit Listview.Select.Item
    geht es ja nicht, und mir fällt nichts ein
    Vielleicht hilft dir das weiter:

    VB.NET-Quellcode

    1. Dim x As Integer = 0
    2. For Each item In ListView1.Items
    3. For i = 0 To ListView1.Items.Count - 1
    4. If ListView1.Items(i).Text = ListView1.Items(x).Text And ListView1.Items(i).Selected = False And ListView1.Items(x).Selected = False Then
    5. ListView1.Items(x).Selected = True
    6. End If
    7. Next
    8. Next


    Ungetestet...
    Viele Grüße
    Sebastian

    singu schrieb:

    Bei Sebastians Beispiel kommt keine MessageBox. Wenn du Selected auf True stellst, dann wird die Zeile markiert.



    In mein ersten Beitrag steht das ich eine Msgbox drin hab, die anzeigt das ein Beitrag doppelt ist. Deswegen kommt wohl eine MsgBox?

    Selected ist auf True und passiert nichts.


    mcdt schrieb:


    ... und da jeder weis, was genau du mit deinem letezen betrag meinst, kann dir auch weitergeholfen werden ...



    ?????

    Sebastian.Trzynka schrieb:

    Ein paar mehr Informationen (Quellcode) würden uns weiterhelfen. So können wir dir kaum helfen! Ich habe meinen Part getestet, der funktioniert.



    Geht ja darum das er es einfügt wenn der Beitrag doppelt ist, und das Checkt der ja hiermit.

    VB.NET-Quellcode

    1. If .FindItemWithText(TextBox1.Text) IsNot Nothing Then
    2. MsgBox(TextBox1.Text & " ist bereits vorhanden.")
    3. TextBox1.Clear()
    4. Return
    Das ist dann ein ganz anderer Zusammenhang :)

    VB.NET-Quellcode

    1. For i=0 to listview1.items.count-1
    2. If ListView1.Items(i).Text = TextBox1.Text Then
    3. ListView1.Items(i).Selected = True
    4. MsgBox(TextBox1.Text & " ist bereits vorhanden.")
    5. TextBox1.Clear()
    6. Else
    7. listview1.items.add(textbox1.text)
    8. textbox1.clear()
    9. End If
    10. Next


    Wieder ungetestet.
    Viele Grüße
    Sebastian

    Sebastian.Trzynka schrieb:

    Das ist dann ein ganz anderer Zusammenhang :)

    VB.NET-Quellcode

    1. For i=0 to listview1.items.count-1
    2. If ListView1.Items(i).Text = TextBox1.Text Then
    3. ListView1.Items(i).Selected = True
    4. MsgBox(TextBox1.Text & " ist bereits vorhanden.")
    5. TextBox1.Clear()
    6. Else
    7. listview1.items.add(textbox1.text)
    8. textbox1.clear()
    9. End If
    10. Next


    Wieder ungetestet.



    Hmm erstmal Danke, aber nun fügt der Überhaupt nichts mehr in die Listview ein
    Sorry, mein Fehler.
    Aufruf Erfolgt über

    VB.NET-Quellcode

    1. checklistview(textbox1.text)


    VB.NET-Quellcode

    1. Function checklistview(ByVal text As String) As Boolean
    2. If Not ListView1.Items.Count = 0 Then
    3. For i = 0 To ListView1.Items.Count - 1
    4. If text = ListView1.Items(i).Text Then
    5. MsgBox(TextBox1.Text & " ist bereits vorhanden.")
    6. TextBox1.Clear()
    7. ListView1.FullRowSelect = True
    8. ListView1.Items(i).Selected = True
    9. Return True
    10. Else
    11. ListView1.Items.Add(text)
    12. TextBox1.Clear()
    13. Return False
    14. End If
    15. Next
    16. Else
    17. ListView1.Items.Add(text)
    18. TextBox1.Clear()
    19. End If
    20. End Function


    Allerdings wird nur der erste Eintrag überprüft, warum auch immer. Aber vielleicht hilft dir das ja schon weiter :)
    Viele Grüße
    Sebastian