Vider une listview ? [Résolu]

Messages postés
498
Date d'inscription
mercredi 7 juillet 2004
Dernière intervention
13 juillet 2015
- - Dernière réponse : el_teedee
Messages postés
498
Date d'inscription
mercredi 7 juillet 2004
Dernière intervention
13 juillet 2015
- 12 juil. 2005 à 09:45
Hello,



comment je peux faire pour -entre deux utilisations- vider ma listview
? j'ai essayer update, refresh après un clear(), mais ca ne marche pas.
Afficher la suite 

Votre réponse

12 réponses

Meilleure réponse
Messages postés
721
Date d'inscription
dimanche 10 juin 2001
Dernière intervention
27 mars 2011
3
Merci
listView1.Items.Clear();

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 96 internautes nous ont dit merci ce mois-ci

Commenter la réponse de Tilois
Messages postés
498
Date d'inscription
mercredi 7 juillet 2004
Dernière intervention
13 juillet 2015
3
Merci
MDR !!!!

je viens de comprendre l'erreur en lisant mon code ci dessus.....



En fait, j'ai déclaré en global ma listview en tant que public, MAIS, je la re déclarais au début de remplir_listview().



Ainsi lorsque je croyais vider la seule et unique listview, je vidais
la listview du même nom mais qui était déjà vide. J'ai effacé la ligne

// Create a new ListView control.

ListView list_Liste_Fichiers = new ListView();
list_Liste_Fichiers.Bounds = new Rectangle(new Point(16,264), new Size(480,170));
et tout marche nikel, elle s'efface bien et est bien rafraichit toute seule.







Merci à tous pour vos réponses

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 96 internautes nous ont dit merci ce mois-ci

Commenter la réponse de el_teedee
Messages postés
498
Date d'inscription
mercredi 7 juillet 2004
Dernière intervention
13 juillet 2015
0
Merci
j'ai essayé, mais même si cela la vide, l'affichage reste le même, et
les lignes ne disparaissent pas. Je veux ET la vider (ok) ET la
rafraichir (NOK)
Commenter la réponse de el_teedee
Messages postés
108
Date d'inscription
vendredi 11 juillet 2003
Dernière intervention
27 novembre 2007
0
Merci
Bonjour,



Quand tu parles de lignes qui ne disparaissent pas, tu parles de la grille (GridLines) ?

-- AOGie --
Commenter la réponse de aogie
Messages postés
498
Date d'inscription
mercredi 7 juillet 2004
Dernière intervention
13 juillet 2015
0
Merci
non, non, non



si je remplit ma listview avec 5 lignes par exemple, je veux faire un bouton qui la vide.



Actuellement, en cliquant sur le bouton j'arrive à vider la listview de
ses items, mais l'affichage reste identique. Les 5 lignes restent
toujours là, et je peux même les sélectionner !



Comment fait-on pour rafraichir la listview après l'avoir vidée ?
Commenter la réponse de el_teedee
Messages postés
498
Date d'inscription
mercredi 7 juillet 2004
Dernière intervention
13 juillet 2015
0
Merci
Ou alors, comment fait-on pour tuer le contrôle listview1 ? j'ai essayé
listview1.Dispose(), avec un refresh, ou un update après, mais la
listview ne disparait pas de ma form !!!!



KéZaKo
Commenter la réponse de el_teedee
Messages postés
108
Date d'inscription
vendredi 11 juillet 2003
Dernière intervention
27 novembre 2007
0
Merci
As-tu essayé un autre projet à côté avec un listview que tu remplies puis que tu vides de manière identique ?


-- AOGie --
Commenter la réponse de aogie
Messages postés
86
Date d'inscription
jeudi 23 octobre 2003
Dernière intervention
21 juin 2007
0
Merci
Et en faisant ceci :

listview.Items.Clear();
Application.DoEvents();

Est-ce que cela convient ?
Commenter la réponse de nerix27
Messages postés
108
Date d'inscription
vendredi 11 juillet 2003
Dernière intervention
27 novembre 2007
0
Merci
Normalement, il n'y a pas besoin d'Application.DoEvents();

Soit il y a un bug... soit quelque chose ne va pas dans ton code car listview.Items.Clear();

suffit.

Est-ce le même thread qui manipule l'objet listview ?

As-tu un extrait de code à fournir pour éclairer un peu plus ?

As-tu essayé ce que je t'ai posté précédemment ?

En dernier recours, tu peux placer en commentaires tout code superflus
jusqu'à obtention du résultat puis décommenter jusqu'à trouver
l'erreur...


-- AOGie --
Commenter la réponse de aogie
Messages postés
498
Date d'inscription
mercredi 7 juillet 2004
Dernière intervention
13 juillet 2015
0
Merci
Je crois qu'il y a mésentente en fait. La listview se vide bien, mais
en fait, je crois que c'est que le rafraichissement de ma form1 qui
n'est pas fait. C'est pour ca qu'elle n'est pas mise à jour.



Comment je peux faire pour redessiner les contrôles de ma form1 avec leur nouveau contenu ?
Commenter la réponse de el_teedee
Messages postés
6366
Date d'inscription
samedi 1 juin 2002
Dernière intervention
2 août 2014
0
Merci
Salut,

Avec la méthode Refresh du form.
Mais je ne vois pas non plus pourquoi le rafraichissement ne se fait pas automatiquement.
Tu n'aurais pas fait une appel à la méthode SuspendLayout du ListView en oubliant d'appeler ResumeLayout ensuite ?

Cocoricoooooooo !!!!
coq
MVP Visual C#
Commenter la réponse de cs_coq
Messages postés
498
Date d'inscription
mercredi 7 juillet 2004
Dernière intervention
13 juillet 2015
0
Merci
Non, non, Coq, je ne touche pas encore à
l'affichage, c'est pour ça que je cafouille un peu sur les méthodes à
utiliser pour rafraichir ma form. Tu dis que c'est censé rafraichir la
listview tout seul ? Pourtant ça ne le fait pas. Est-ce parcequ'elle
est contenu dans un tabControl sur ma form1 ? Qu'est-ce que je dois
rafraichir, (si rafraichir qqch je dois) :

_ listview1.refresh() ? marche pas

_ MaForm.tabControl1.TabPages[0].Refresh(); ? marche pas

_ MaForm.Refresh(); ? marche pas

_ Application.DoEvents(); ? marche pas



Bon, sinon, je vous donne le code dont je me sers pour remplir ma listview qui s'appelle list_Liste_Fichiers.





private void Remplir_la_listview(string string_La_Liste)

{

DateTime dt = DateTime.Now;

Trame ma_trame = new Trame();

string[,] tableau = ma_trame.De_Concatener_La_Liste(string_La_Liste);



// Create a new ListView control.

ListView list_Liste_Fichiers = new ListView();


list_Liste_Fichiers.Bounds = new Rectangle(new Point(16,264), new
Size(480,170));


list_Liste_Fichiers.View = View.Details;

list_Liste_Fichiers.LabelEdit = true;

list_Liste_Fichiers.AllowColumnReorder = true;

list_Liste_Fichiers.CheckBoxes = true;

list_Liste_Fichiers.FullRowSelect = true;

list_Liste_Fichiers.GridLines = true;

list_Liste_Fichiers.Sorting = SortOrder.Ascending;



ListViewItem[] col_lvi = new ListViewItem[tableau.Length / 5];

//on copie la
collection historique dans une temporaire que je vais vider au fur


//et à mesure que je rencontre les fichiers présents.

ma_col_historique_recherchee = ma_col_historique.duplicate();



for (int i=0; i
Commenter la réponse de el_teedee

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.