Accueil > Forum > > > > Au sujet du contrôle listView suppression ligne(s)
Au sujet du contrôle listView suppression ligne(s)
mardi 6 juin 2006 à 16:54:57 |
Au sujet du contrôle listView suppression ligne(s)

Tanaka56
|
Bonjour à tous.
Sur mon contrôle "ListView1" j'ai coché MultiSelect. Je peux donc sélectionner une où plusieurs lignes soit contigus ou pas.
Seulement comment les supprimer après les avoir sélectionnées?
Merci de vos réponses.
Cordialement.
|
|
mardi 6 juin 2006 à 17:24:00 |
Re : Au sujet du contrôle listView suppression ligne(s)

jrivet
|
Salut, Essaie un truc du genre:  Dim i As Integer For i = ListView1.ListItems.Count To 1 Step -1 If ListView1.ListItems(i).Selected Then Call ListView1.ListItems.Remove(i) End If Next

Coloration syntaxique automatique [AFCK] 
ATTENTION les items ont été ajoutés sans index, peu être que cela change si tu les ajoutes avec des index @+, Julien Pensez: Moteur de Recherche, Réponse Acceptée
|
|
mardi 6 juin 2006 à 17:29:10 |
Re : Au sujet du contrôle listView suppression ligne(s)

addamsmercredi
|
Lorsqu'il y a beaucoup de lignes, la méthode suivante est beaucoup plus rapide :
Dim item As ListViewItem For Each item In ListView1.SelectedItems ListView1.Items.Remove(item) Next
|
|
mardi 6 juin 2006 à 17:46:26 |
Re : Au sujet du contrôle listView suppression ligne(s)

Gobillot
|
celle ci est plus rapide:
Private Declare Function PostMessage Lib "user32" Alias "PostMessageA"
(ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal
lParam As Long) As Long
Dim i As Integer For i = ListView1.ListItems.Count To 1 Step -1
If ListView1.ListItems(i).Selected Then
PostMessage Listview1.hwnd, &H1008&, i, 0
End If Next
Daniel
|
|
mardi 6 juin 2006 à 18:46:28 |
Re : Au sujet du contrôle listView suppression ligne(s)

Tanaka56
|
Merci à tous pour vos solutions. Cordialement. Alain
|
|
mardi 6 juin 2006 à 19:00:02 |
Re : Au sujet du contrôle listView suppression ligne(s)

Gobillot
|
en fait, il semblerait que le nombre de PostMessage est limité à 10000
en dessous de 10000 pas de problème, pas de moment d'attente, pour la vitesse il y a pas photo, 50 fois plus rapide,
tous les "remove" se faisant à la fin.
au dessus de 10000, il faut insérer des Doevents, et là on perd pas mal
de temps, mais dans l'ensemble c'est encore un peu plus rapide.
à noter aussi le i-1 dans PostMessage
Private Declare Function PostMessage Lib "user32" Alias "PostMessageA"
(ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal
lParam As Long) As Long
Dim i AsLong For i = ListView1.ListItems.Count To 1 Step -1
If ListView1.ListItems(i).Selected Then PostMessage ListView1.hwnd, &H1008&, i - 1, 0
If (i And &H1FFF&) = 0 Then DoEvents
End If Next
Daniel
|
|
mardi 6 juin 2006 à 19:52:55 |
Re : Au sujet du contrôle listView suppression ligne(s)

addamsmercredi
|
Je n'ai pas comparé la rapidité de Remove avec PostMessage car je ne connaissais pas cette dernière et je n'ai pas VB.NET ni VB 2005 ici pour tester (je les ai seulement au travail).
Mais ce dont je suis sûr car déjà testé et retesté, c'est que pour parcourir une listview, il faut absoluement éviter d'utiliser une boucle du genre "For i = ListView1.ListItems.Count To 1 Step -1" ou "For i = ListView1.ListItems.Count To 1 Step -1" car c'est affreusement long à cause de l'instruction "ListView1.ListItems(i)".
Une boucle "For Each" est beaucoup beaucoup plus rapide ! Il n'y a pas photo !
De plus, ce n'est pas forcément judicieux de parcourir toutes les lignes pour ne concerver que celles qui sont sélectionnées, il suffit de parcourir seulement les lignes sélectionnées.
Ma méthode couplée à la fonction PostMessage donnerait sûrement une version bien plus rapide.
|
|
mardi 6 juin 2006 à 20:01:35 |
Re : Au sujet du contrôle listView suppression ligne(s)

Gobillot
|
le problème c'est qu'ici cest VB6
donc pas de collection pour la ListView
et ta solution ne marche pas
Daniel
|
|
mardi 6 juin 2006 à 20:15:08 |
Re : Au sujet du contrôle listView suppression ligne(s)

addamsmercredi
|
Oups désolé, je pensais que les listview n'existaient pas sur VB6 donc j'ai tout de suite pensé que c'était sous VB.NET ou VB 2005. Désolé.
|
|
Cette discussion est classée dans : ligne, contrôle, listview, suppression, sujet
Répondre à ce message
Sujets en rapport avec ce message
Colorier 1 ligne sur 2 dans le contrôle ListView [ par Patrik ]
Salut,Je suis à la recherche du source me permettant de colorier les lignes paires ou impaires de mon contrôle ListView.Merci à tous ceux qui pourront
Suppression ligne ListView [ par jeromepol49 ]
Je souhaite supprimer une ligne ENTIERE dans une listview (même la première colonne car j'arrive à supprimer tous les éléments d'une ligne mais pas la
Important sujet : ListView [ par ndro ]
tout dabord bonjour !!!!!!!!Je doit faire un chat pour un reseau LAN, et j'ai choisi d'utiliser les listview pour faire cela car on peux changer la co
Au sujet du contrôle listView ou datagrid [ par Tanaka56 ]
Bonjour,Merci de m'indiquer ou je peut me procurer le contrôle listView ou datagrid?J'ai Visual Basic 6.Salutations à tous.
Au sujet du contrôle listView [ par Tanaka56 ]
Bonjour.Je voudrais dans un contrôle ListView remplir des lignes et des colonnes !Pour exemple je n'ai uniquement choisi que trois colonnes :<img alt=
Listview avec vignettes en dehors du contrôle... [ par misterN ]
Bonjour, Les vignette de mon listview sont alignée sur une ligne et dépassent du contrôle. Même en utilisant la commande ".Arrange" lvwNone = ne réa
Création d'un contrôle personnalisé. [ par guilleto ]
Bonjour à toutes et tous, Je cherche à réaliser un contrôle assez complexe (à mon niveau). Je voudrais faire un listing dont chaque ligne serait ratt
Chercher un mot dans listview et coloer la ligne [ par sihammaster ]
Bonjour, Je voudrais creer un code qui permet de parcourir une listview et cherche un mot dans la colonne par ex:3, s'il le trouve il va coloré toute
Comment envoyer plusieurs lignes à une listview ? [ par Adn56 ]
Bonsoir la team, Voici un probléme surrement trés simple à régler, mais je ne trouve pas la soluce. Dans mes class de données j'utilise une fonction t
Alterner deux couleurs des lignes du contrôle Listview [ par bonagad ]
bonjour, j'aimerais alterner de deux couleurs les lignes d'un contrôle Listview lorsque je charge les données depuis une table de base de données. mer
Livres en rapport
|
Derniers Blogs
DéMARRONS AVEC LES TASKSDéMARRONS AVEC LES TASKS par richardc
Que vous le vouliez ou non, le développement multi-tâche est maintenant une obligation pour toute nouvelle application. Il est donc vital d'en comprendre les mécanismes et de s'y mettre le plus tôt possible.
En attendant le .NET Framework 4.5 avec le...
Cliquez pour lire la suite de l'article par richardc SLIDE & DéMO TECHDAYS 2012 - FAST & FURIOUS XAML APPSSLIDE & DéMO TECHDAYS 2012 - FAST & FURIOUS XAML APPS par Vko
Retrouvez les slides et les démo de ma session Fast & Furious XAML Apps. A ceux qui se posent la question : "est-ce que le code de la DataGrid est disponible?", je vous répondrais "pas encore". Je vais mettre en place un projet codeplex pour part...
Cliquez pour lire la suite de l'article par Vko XNA IS DEAD!XNA IS DEAD! par richardc
Depuis la semaine dernière (et grâce aux TechDays 2012), je me penche activement sur la nouvelle version de Windows, aka Windows 8. Vous me direz, il était temps puisque la première preview date de Septembre dernier.
OK. Remarquez, on n'en est qu'aux...
Cliquez pour lire la suite de l'article par richardc TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 !TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 ! par ROMELARD Fabrice
Speakers: Fabrice Meillon et Stanislas Quastana Cette session est basée entièrement sur celle donnée lors de la BUILD cet hiver. Il n'y a pas d'ajout d'information en rapport avec cet évènement passé. Windows 8 Server sera intégralem...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice [HTML5] AUTOUR DU W3C : NOUVEAUX STANDARDS ET WEB MOBILE (LILLE)[HTML5] AUTOUR DU W3C : NOUVEAUX STANDARDS ET WEB MOBILE (LILLE) par Gio
Je m'y prends un peu tard je sais, mais bon je suis développeur web et donc hyper fainéant ! Toujours dans le cadre des technologies émergentes, ici HTML5, parce qu'on aime HTML5 chez Wyg , nous seront présent, le vieux ( Aurélien V.) et moi, pour pr...
Cliquez pour lire la suite de l'article par Gio
Logiciels
DocTranslate (V3.1.0.0)DOCTRANSLATE (V3.1.0.0)DocTranslate est un traducteur de document Microsoft Word, PowerPoint et Excel. Il permet d'autom... Cliquez pour télécharger DocTranslate Tribler (2012)TRIBLER (2012)Tribler est un client pair à pair (P2P/Peer-to-Peer) open source avec la capacité de regarder des... Cliquez pour télécharger Tribler OneSwarm (2012)ONESWARM (2012)Le peer-to-peer qui protège votre vie privée, c'est OneSwarm.
Ce logiciel de peer-to-peer crypté... Cliquez pour télécharger OneSwarm PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System
|