[VB.NET 2005] Listview remove

Pagina: 1
Acties:

  • fleppuhstein
  • Registratie: Januari 2002
  • Laatst online: 21-10 21:48
Goedemiddag,

Ik ben bezig met een messenger applicatie, waarbij alle buddy's in een listview worden opgeslagen.
Echt bij het wijzigen van hun status (Online, Offline, en Busy) Moeten ze worden verplaatst in de listview.

Het toevoegen van een item gaat als volgt:
Visual Basic:
1
2
3
4
lvitem = New ListViewItem(contactlist(contactcounter).username, 2)
                        lvitem.Tag = contactlist(contactcounter).userarrayid
                        lv_users.Items.Add(lvitem) 'And add it to the list view
                        lv_users.Groups("onlineusers").Items.Add(lvitem) 'And add my item to the group


Alleen voor het verwijderen heb ik slechts drie optie's die alle drie niet voldoen
- remove >> Kan alleen een item wissen, niet op basis van input.
- removebykey >> Wist op basis van key, is niet ingesteld, zie hier onder.
- removeat >> Wist op positie, die dus niet vast is, door de wijzigingen.

Alle drie heb ik momenteel dus niks aan. Met google en de MSDN kom ik maar weinig 2005 voorbeelden tegen, en ten opzichte van 2003 zijn er veel wijzigingen geweest in de listview.

Wat ik wel tegen kom op internet/MSDN is het volgende:
Visual Basic:
1
2
3
4
5
6
7
Dim instance As ListViewItemCollection
Dim key As String
Dim text As String
Dim imageIndex As Integer
Dim returnValue As ListViewItem

returnValue = instance.Add(key, text, imageIndex)


Echter ListViewItemCollection wordt niet herkend in VB.Net 2005. Met een key kan ik namelijk op de key ook verwijderen. Iemand hier een beter insteek/oplossing voor ? Misschien zie ik iets compleet over het hoofd ?

  • mulder
  • Registratie: Augustus 2001
  • Laatst online: 21:34

mulder

ik spuug op het trottoir

Een collectie kan wel een goede insteek zijn. Je doet alle bewerkingen op die collectie en bind deze weer aan de listview als deze gewijzigd is.

oogjes open, snaveltjes dicht


  • fleppuhstein
  • Registratie: Januari 2002
  • Laatst online: 21-10 21:48
Don Facundo schreef op zondag 13 mei 2007 @ 16:09:
Een collectie kan wel een goede insteek zijn. Je doet alle bewerkingen op die collectie en bind deze weer aan de listview als deze gewijzigd is.
Na wat uitgebreider zoeken had ik de collectie eigenlijk al in de vorm van een object array. Waardoor het mamelijker was om gewoon de array te updaten met statussen en vervolgens de listview vanaf 0 opnieuw op te bouwen met de hulp van listview.beginupdate en listview.endupdate.

  • roy-t
  • Registratie: Oktober 2004
  • Laatst online: 17-10 16:43
fleppuhstein schreef op zondag 13 mei 2007 @ 16:41:
[...]


Na wat uitgebreider zoeken had ik de collectie eigenlijk al in de vorm van een object array. Waardoor het mamelijker was om gewoon de array te updaten met statussen en vervolgens de listview vanaf 0 opnieuw op te bouwen met de hulp van listview.beginupdate en listview.endupdate.
True, en als dat opbouwen lang lijkt te duren moet je even voor en na het opbouwen iets in de trand van beginlayoutupdate of iets dergelijks zetten (ben echt de naam kwijt sorry, maar deze functie zorgt ervoor dat de listview en alle andere visuele objecten pas weer opgebouwd worden als je klaar bent met vullen, kan wat snelheid schelen :)

~ Mijn prog blog!


  • fleppuhstein
  • Registratie: Januari 2002
  • Laatst online: 21-10 21:48
therat10430 schreef op maandag 14 mei 2007 @ 15:50:
[...]

True, en als dat opbouwen lang lijkt te duren moet je even voor en na het opbouwen iets in de trand van beginlayoutupdate of iets dergelijks zetten (ben echt de naam kwijt sorry, maar deze functie zorgt ervoor dat de listview en alle andere visuele objecten pas weer opgebouwd worden als je klaar bent met vullen, kan wat snelheid schelen :)
Dat is dus wat.BeginUpdate en .EndUpdate doen.