[VB.NET/C#] Via code rij selecteren icm. listview

Pagina: 1
Acties:

  • MikevanEngelen
  • Registratie: Mei 2001
  • Laatst online: 01-05 19:11
Beste,

Na een poos bezig geweest te zijn met de ListView propertys heb ik het idee dat het gene wat ik wil niet bestaat.
Het gaat om het volgende: ik heb een form met daarin een Listview, de inhoud van de listview wijzigd om de 30 seconde (dan haalt hij dus ook de listview leeg en vult hem opnieuw).
Nu is het probleem dat wanneer ik een item selecteer uit de listview, en de 30 seconde is om hij dus het item niet meer selecteerd welke wel was geselecteerd.

Nu heb ik voordat hij de refresh doet van de Listview de volgende code:
code:
1
2
3
4
5
6
Dim strSelectedItem As String
Dim z As Integer
  If lvKlanten.SelectedIndices.Count <> 0 Then
   For Each z In lvKlanten.SelectedIndices
     strSelectedItem = lvKlanten.Items(z).Text
  Next z

Echter wat ik dus probeer om nadat hij de data heeft gerefreshed in de Listview hij automatisch de waarde welke in strSelectedItem weer terugselecteerd.
Helaas is er bij de Listview niet iets als een property van ".SelectItem".

Heeft iemand hier een idee hoe ik dit kan oplossen ?
Eventuele code kan zowel gepost worden in VB.NET (voorkeur) maar C# is ook geen probleem.
Alvast bedankt.

  • whoami
  • Registratie: December 2000
  • Laatst online: 01:02
Waarom haal je je hele listview leeg ipv gewoon het nieuwe item (of de nieuwe items) te adden ?

Als je het toch zo wilt doen zoals je doet:
een listviewitem heeft een selected property.

https://fgheysels.github.io/


  • sig69
  • Registratie: Mei 2002
  • Laatst online: 21:15
Bedenk wel dat als je je items weer wil selecteren aan de hand van de index van een item dat geselecteerd was, en er een item voor dat item geinsert wordt, na de refresh dus het verkeerde item geselecteerd staat.

Roomba E5 te koop


  • MrSleeves
  • Registratie: Februari 2004
  • Laatst online: 10-04 19:23

MrSleeves

You'll thank me later.

sig69 schreef op dinsdag 19 april 2005 @ 14:12:
Bedenk wel dat als je je items weer wil selecteren aan de hand van de index van een item dat geselecteerd was, en er een item voor dat item geinsert wordt, na de refresh dus het verkeerde item geselecteerd staat.
Daarom probeert/wil hij het ook op value denk ik..

Ik snap alleen die code niet eigenlijk.. Die doet namelijk niet echt iets.
Oke, wel iets..

Is dit niks:
code:
1
lvKlanten.Items(...).Selected=True

[ Voor 10% gewijzigd door MrSleeves op 19-04-2005 14:17 ]

30Drie Web Design & IT Consultancy | Raven Consultancy Services


  • MikevanEngelen
  • Registratie: Mei 2001
  • Laatst online: 01-05 19:11
Heyz,

Ik heb zitten zoeken, en het bleek dat er inderdaad een Selected() property was, deze zat verborgen onder Listview.Items.Selected.
Met de volgende code heb ik het opgelost:
code:
1
2
3
4
5
6
7
        Dim intSelectedIndex As String
        Dim z As Integer
        If lvKlanten.SelectedIndices.Count <> 0 Then
            For Each z In lvKlanten.SelectedIndices
                intSelectedIndex = lvKlanten.Items(z).Index
            Next z
        End If

code:
1
2
3
            If Not intSelectedIndex = 0 Then
                lvKlanten.Items(intSelectedIndex).Selected = True
            End If


De reden dat ik de complete dataset leeggooi, omdat het praktisch makkelijker is. Ipv te gaan kijken wat er al instaat, en alleen de nieuwe records toevoegt. Het voordeel met mijn manier is dat je ook de gewijzigde data in de al bestaande kolommen update.

In ieder geval dank voor je reactie.

Edit: er komen alleen maar nieuwe rows ONDER, er worden geen items tussendoor toegevoegd.

[slotje]

[ Voor 6% gewijzigd door MikevanEngelen op 19-04-2005 14:16 . Reden: toevoeging nieuwe replies ]