Question

J'ai un contrôle ListView et j'essaie de trouver le moyen le plus simple/le meilleur d'interdire la modification de la ou des lignes sélectionnées, sans cache la ou les lignes sélectionnées.

Je sais qu'il y a un HideSelection propriété, mais cela ne fonctionne que lorsque le ListView est toujours activé (mais pas ciblé).J'ai besoin que la sélection soit visible même lorsque ListView est désactivé.

Comment puis-je mettre en œuvre cela ?

Était-ce utile?

La solution

Vous pouvez également créer le propriétaire ListView.Vous avez alors un contrôle total sur l'apparence des éléments, qu'ils soient sélectionnés ou non ou que ListView lui-même soit activé ou non.DrawListViewItemEventArgs fournit un moyen de demander à ListView de dessiner des parties individuelles de l'élément afin que vous n'ayez qu'à dessiner les bits qui vous intéressent.Par exemple, vous pouvez dessiner l’arrière-plan de l’élément mais laisser au ListView le soin de dessiner le texte.

Autres conseils

Il existe deux options : modifier les couleurs désactivées des lignes sélectionnées.Ou modifiez toutes les autres lignes pour simuler qu'elles sont désactivées, à l'exception de celle sélectionnée.La première option est évidemment la plus simple, et la deuxième option nécessitera évidemment des protections supplémentaires.

En fait, j'ai déjà choisi la première option et cela fonctionne plutôt bien.N'oubliez pas de rétablir les couleurs par défaut au cas où une autre ligne serait sélectionnée plus tard dans le processus.

Implémentez SelectedIndexChanged et faites ceci

    private void listViewABC_SelectedIndexChanged(object sender, EventArgs e)
    {
        listViewABC.SelectedItems.Clear();
    }
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top