prévenir listview à perdre de l'élément sélectionné
Je suis actuellement en train de travailler sur une listview en winform c#
et à chaque fois que je clique sur un espace vide sur la liste,
l'élément sélectionné est perdu.
WinForms ou WPF? L'espace vide à droite ou au-dessous? Que voulez-vous arriver?
double possible de Disallow ListView à zéro les éléments sélectionnés
dans les propriétés... HideSelection=False et FullRowSelect = True
double possible de Disallow ListView à zéro les éléments sélectionnés
dans les propriétés... HideSelection=False et FullRowSelect = True
OriginalL'auteur EdgarGad | 2010-03-04
Vous devez vous connecter pour publier un commentaire.
Le contrôle listview a un
HideSelection
des biens dont la valeur par défautTrue
. FaireFalse
et vous êtes bon pour aller... dans certains cas, ce est assez.Correction: il est avoir un problème avec les éléments de la désélection. Les éléments sélectionnés ne sont pas mis en avant parce que le contrôle perd les éléments qui sont sélectionnés.
OriginalL'auteur Learner
Je pensais qu'il y avait une propriété qui a empêché que cela se produise, mais maintenant je ne le trouve pas.
Vous pouvez essayer ceci:
La question n'est pas de déterminer si elle a été WPF, WinForms, ASP, Silverlight ou quoi que ce soit d'autre. Je viens de répondre à ce qui m'est arrivé d'avoir ouvert dans l'IDE pour le moment. Vous devriez poster une réponse avec votre préféré C# technologie d'affichage! 🙂
en effet votre droite. c'est en winforms
Ce n'était pas une critique. Juste la rendre plus claire pour un débutant pourquoi votre réponse est correcte peut ne pas fonctionner pour lui.
OriginalL'auteur Jeffrey L Whitledge
J'ai fait comme ceci:
et
OriginalL'auteur Ready Cent
Vous devez hériter de la classe ListView et faire un peu de bas-niveau traitement d'un message de
OriginalL'auteur Alex
C'est beaucoup plus difficile à faire dans WinForms que dans WPF. WinForms a un
SelectedIndexChanged
événement qui n'est pas de vous dire quelque chose sur ce qui a déjà été sélectionné, plus il est déclenché chaque fois qu'une ligne est sélectionnée ou désélectionnée.Donc, si une ligne est sélectionnée et que vous sélectionnez une autre ligne, vous recevez deux
SelectedIndexChanged
événements:Le problème est que, lors de l'event #1, la liste n'a rien choisi et vous ne savez pas si l'event #2 est à venir, qui permettra de sélectionner la deuxième ligne.
Le meilleur que vous pouvez faire est d'attendre jusqu'à ce que votre demande est en attente (quelques millisecondes après la modification de la sélection), et si la liste n'a encore rien choisi, mettre la dernière ligne sélectionnée.
OriginalL'auteur Grammarian