ListView Controls

Signaler
Messages postés
66
Date d'inscription
jeudi 24 avril 2003
Statut
Membre
Dernière intervention
10 août 2007
-
Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
-
Bonjour, je cherche quelqu'un qui maitrise assez bien les listview

En fait je cherche a déclencher un evenement lorsque je clique sur un subItem d'un Item appartenant a ma listView, je sais déja que je peu récupérer l'Item selectionée
mais je souhaiterai pouvoir selectioner un subItem. J'éspere que j'ai été assez clair dans mes explications et que quelqu'un pourra m'éclaircir merci d'avance....
mat.

7 réponses

Messages postés
1115
Date d'inscription
mercredi 15 juin 2011
Statut
Membre
Dernière intervention
6 mai 2021
4
salut,

moi j'ai bien galéré avec les listviews mais en mode icone, toi tu es en mode détail.
A confirmer, mais il me semble qu'on ne peut pas sélectionner un subitem (en tout cas dans le controle de base).
Je ne connais pas ton contexte mais pourquoi ne prends-tu pas une Grid ? (DataGrid ou autre)
Messages postés
66
Date d'inscription
jeudi 24 avril 2003
Statut
Membre
Dernière intervention
10 août 2007

oui je suis en mode detail, et en fait je penserai qu'il faudrait pas passer par les subItems mais ajouter directement  ListViewItem pour remplir mes columns
Je n'utilise pas de grid car en fait je suis sur le compactFramework et il ne me permet pas d'acceder a un datagridView malheureusement.

mat.
Messages postés
1115
Date d'inscription
mercredi 15 juin 2011
Statut
Membre
Dernière intervention
6 mai 2021
4
Essaie de chercher sur codeproject, j'avais trouvé pas mal de chose sur ce site.

va sur ce lienca va peut-etre t'aider (mais pas résoudre directement le pb :( )
Messages postés
3172
Date d'inscription
dimanche 15 février 2004
Statut
Membre
Dernière intervention
9 avril 2017
35
Salut,

Une première petite ébauche:



System.Windows.Forms.
ListViewItem
.
ListViewSubItem
SelectSubItem =
null
;

private

void
TaListViewOnMouseDown(
object
sender, System.Windows.Forms.
MouseEventArgs
e) {

  System.Windows.Forms.
ListViewItem
Item = TaListView.GetItemAt(4, e.Y);

  
if
(Item !=
null
) {

    
int
ColLeft = 0;

    
for
(
int
i = 0; i < TaListView.Columns.Count; i++) {

      
if
(e.X > ColLeft && e.X < ColLeft + TaListView.Columns[i].Width) {

        System.Windows.Forms.
ListViewItem
.
ListViewSubItem
SubItem = Item.SubItems[i];

        SubItem.BackColor = System.Drawing.
SystemColors
.Highlight;

        SubItem.ForeColor = System.Drawing.
SystemColors
.HighlightText;

        
if
(SelectSubItem !=
null
) {

          SelectSubItem.BackColor = TaListView.BackColor;

          SelectSubItem.ForeColor = TaListView.ForeColor ;

        }

        SelectSubItem = SubItem;

        
break
;

      }
else

        ColLeft += TaListView.Columns[i].Width;

    }

  }

}


Ca marche que avec la sourie la, reste a faire la gestion pour le clavier.
Note: Pour que ca marche, passe la propriété UseItemStyleForSubItems de tes item à false.




Kenji





Merci de lire le 

règlement
 (vivement conseillé voir obligatoire)./P>
Messages postés
66
Date d'inscription
jeudi 24 avril 2003
Statut
Membre
Dernière intervention
10 août 2007

Merci Kenji, mais sache que j'ai essayé de respecter au mieux le reglement
sinon pour ta source elle me semble trés précieuse mais malheureusement je ne pense que je pourrai l'utiliser car comme je l'ai mis je travaille sur le compactFramework et donc beaucoup de methodes sont obsoletes et inutilisables, mais merci qd meme!
mat.
Messages postés
3172
Date d'inscription
dimanche 15 février 2004
Statut
Membre
Dernière intervention
9 avril 2017
35
Pour le règlment, c'est ma signature. Et tu l'as bien respecter ce règlement.
Oui, si tu travaille avec le compactFramework va falloire changer 2,3 trucs, ca doit être possible de remplacer les méthodes obsoletes.




Kenji

Merci de lire le règlement (vivement conseillé voir obligatoire).
/FONT>
Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
97
Salut,

Tu devrais peut être séparer un peu mieux ta signature je pense ^^

/*
coq
MVP Visual C#
*/