IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Forms Discussion :

C#| ListView efface et tri


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 93
    Par défaut C#| ListView efface et tri
    Salut, j'ai une listview et je voulais que lorsque je clique sur le bouton supprime, que celui qui est sélectionner s'efface. Bon j'avais

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    lstContact.Items.RemoveAt(lstContact.SelectedIndices[0]);
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    lstContact.Items.Remove(lstContact.SelectedItems[0]);
    Mais cela fait buger mon programme d'un coup.... Aurait-il une solution plus simple?

    Et l'autre question, c'est quand je veux faire un tri, je suis aller voir sur:http://faqcsharp.developpez.com/?pag...w_listviewsort
    mais étant débutant je ne comprend pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    class ListViewItemComparer : IComparer
    J'ai créer une classe nommé ListViewItemComparer et ensuite j'ai essayer de l'incrustrer dans la classe mais il me sort des erreur sur le IComparer. Il sort d'ou celui la !!
    C:\...\ListViewItemComparer.cs(12): The type or namespace name 'IComparer' could not be found (are you missing a using directive or an assembly reference?)
    voila l'erreur...

    Bon pas oublier de me répondre sur les 2, mais si vous pouvez je serai tres heureux!

    Merci

  2. #2
    Invité
    Invité(e)
    Par défaut
    Vérifie que la valeur à l'indice 0 n'est pas null.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2005
    Messages
    201
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 201
    Par défaut
    Remplacer

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    lstContact.Items.RemoveAt(lstContact.SelectedIndices[0]);
    Par

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    lstContact.Items.RemoveAt(lstContact.SelectedIndices);



    Remplacer

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    lstContact.Items.Remove(lstContact.SelectedItems[0]);
    Par

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    lstContact.Items.Remove(lstContact.SelectedItems);

    Si ta listview peut sélectionné plusieurs entrées, il te faut créer des Collection.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ListView.SelectedIndexCollection indexes = this.ListView1.SelectedIndices;
    //Et tu parcours ta liste en supprimant les items voulues

    Pour IComparer, essaye d'ajouter

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    using System.Collections;

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 93
    Par défaut ok
    Parfait, j'essaye ca .

    Merci de votre temps

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 93
    Par défaut
    Bon salut, j'ai essayer pour le tri...
    J'ai ma classe qui est celle-ci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    using System;
    using System.Collections.Generic;
    using System.Text;
    using System.Collections;
    using System.Windows.Forms;
     
    namespace ProjetObj
    {
     
        class ListViewItemComparer : IComparer
        {
            private int col;
            private SortOrder sortOrder;
            public ListViewItemComparer()
            {
                col = 0;
                sortOrder = System.Windows.Forms.SortOrder.Ascending;
            }
            public ListViewItemComparer(int column)
            {
                col = column;
                sortOrder = System.Windows.Forms.SortOrder.Ascending;
            }
            public ListViewItemComparer(int column, SortOrder s)
            {
                col = column;
                sortOrder = s;
            }
            public int Compare(object x, object y)
            {
                if (sortOrder == System.Windows.Forms.SortOrder.Ascending)
                { return string.Compare(((ListViewItem)(x)).SubItems(col).Text, ((ListViewItem)(y)).SubItems(col).Text); }
                else
                { return string.Compare(((ListViewItem)(y)).SubItems(col).Text, ((ListViewItem)(x)).SubItems(col).Text); }
            }
        }
     
    }
    Ici, il n'aime pas mes SubItems il devrait etre propriétaire et non un 'méthode'
    et ensuite j'ai ma fonction sur ma colone:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
        private void ListView1_ColumnClick(object sender, System.Windows.Forms.ColumnClickEventArgs e)
            {
                if (this.lstContact.Sorting == SortOrder.Ascending)
                { this.lstContact.Sorting = SortOrder.Descending; }
                else
                { this.lstContact.Sorting = SortOrder.Ascending; }
     
                this.lstContact.ListViewItemSorter = new ListViewItemComparer(e.Column, this.lstContact.Sorting);
            }
    Et ici yaime pas mes sorting pourtant jai bien mit System.Windows.Forms en haut...

    Merci
    Thom

  6. #6
    Membre Expert Avatar de Mose
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 143
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 143
    Par défaut
    Quand tu dis "il aime pas" , ça veut dire qu'il te colles une erreur de syntaxe ?

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 93
    Par défaut
    Oui exactement, il me sort une erreur de syntaxe.

Discussions similaires

  1. [ListView] ListView personnalisée avec tri alphabétique
    Par Nuzei dans le forum Composants graphiques
    Réponses: 2
    Dernier message: 02/03/2011, 12h14
  2. [VB6] Listview problème de tri.
    Par pier* dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 01/06/2006, 12h23
  3. Tri de dates dans listview
    Par Le Djé dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 18/01/2006, 19h48
  4. [ListView] tri particulier (comparaison numérique)
    Par Cybher dans le forum C++Builder
    Réponses: 16
    Dernier message: 28/07/2005, 14h12
  5. [VB6][ListView] Tri sur chaque colonne
    Par frlap dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 26/05/2004, 11h20

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo