Comment désactiver une case à cocher dans une checklist?
J'ai quelques éléments dans un contrôle de zone de liste, je veux désactiver la case à cocher du premier élément en elle.
c'est à dire je veux désactiver le premier élément de la CheckedListBox, parce que je veux indiquer à l'utilisateur visuellement que l'option n'est pas disponible.
source d'informationauteur Subodh Bansal
Vous devez vous connecter pour publier un commentaire.
Combinant 2 ci-dessus des éléments de réponses a très bien fonctionné pour moi.
Ajouter vos articles à la liste:
Où mon_état est CheckState.Pour une période indéterminée pour les éléments qui doivent être désactivés.
Puis ajouter un gestionnaire d'événements pour garder ces éléments à partir modifié:
Cela ne vous autorise pas à utiliser 'Indéterminée' dans cette liste pour son usage normal, mais ça lui donne un look très similaire à ce que l'on pourrait s'y attendre pour un élément désactivé et il fournit le comportement correct!
La désactivation des éléments n'est pas une bonne idée, l'utilisateur n'aura pas de bons commentaires qu'cliquez sur la case à cocher n'aura aucun effet. Vous ne pouvez pas utiliser de dessin personnalisé pour le rendre évident. La meilleure chose à faire est de simplement omettre l'élément.
Cependant, vous pouvez facilement vaincre l'utilisateur avec le ItemCheck événement:
De désactiver un élément particulier d'utilisation suivantes:
SetItemCheckState
prend l'indice de l'élément etCheckState
EnumIndéterminée est utilisé pour montrer l'apparence ombrée
Je sais qu'il a été un certain temps, mais j'ai trouvé ça dans ma recherche pour une zone de liste et pensé que je pourrais l'ajouter à la discussion.
Si vous avez un listbox et souhaitez désactiver toutes les cases à cocher de sorte qu'ils ne peuvent pas être cliqué, mais pas de désactiver le contrôle de sorte que l'utilisateur peut toujours faire défiler etc. vous pouvez faire ceci:
Bien que ce post est assez vieux, le dernier réponse a été soumis en avril de cette année,
et j'espère que cela aidera quelqu'un.
Je recherchais quelque chose de semblable : un contrôle de zone de liste qui se comporte comme
beaucoup d'installateurs, qui offre une liste d'options, où certaines fonctions sont nécessaires et
sont donc à la fois vérifié et désactivé .
Merci pour ce post (Puis-je utiliser un gestionnaire d'événements DrawItem avec une CheckedListBox?)
J'ai réussi à le faire, sous-classement d'un contrôle CheckedListBox.
Comme l'OP dans la post-unis, dans le contrôle CheckedListBox la OnDrawItem événement n'est jamais tiré,
donc, sous-classement est nécessaire.
C'est très basique, mais ça marche.
C'est à quoi il ressemble (la Case ci-dessus est à titre de comparaison) :
NOTE : l'élément désactivé est vraiment désactivé : en cliquant sur il n'a pas d'effets que ce soit
(autant que je puisse en dire).
Et c'est le code :
L'utiliser comme ceci :
Espère que cela peut aider quelqu'un.
La CheckedListBox ne fonctionne pas dans cette voie. CheckedListBox.Les éléments est un ensemble de cordes de sorte qu'ils ne peuvent pas être "désactivé" en tant que tel.
Voici quelques discussions sur les solutions possibles qui pourraient vous aider: ici et ici.
La solution est d'utiliser l'événement
ItemChecking
:Cela va annuler la vérification sur chaque article, mais vous pouvez toujours en faire plus raffiné solution mais les tests actuels
.SelectedItem
Voici comment je l'ai fait dans une application de support technique, j'ai écrit:
Tout d'abord, j'ai fait en sorte que la case à cocher est grisée comme je l'ai ajouté à la liste lors du chargement du formulaire:
Ensuite, j'ai utilisé un événement de sorte que lorsque l'utilisateur clique dessus, il assure qu'il reste cliqué:
L'idée ici est que dans mon formulaire il est réglé de sorte que la zone de contrôles sur l'élément, cliquez sur/select. De cette façon, je pourrais tuer deux oiseaux avec une pierre. J'ai pu garder cet événement à partir de causer des problèmes lorsque l'élément est d'abord vérifié et ajouté lors du chargement du formulaire. Plus le rendant vérifier sur sélectionnez, me permet d'utiliser cet événement au lieu de l'élément vérifié événement. En fin de compte l'idée est de garder de déconner pendant la charge.
Vous remarquerez également qu'il n'a pas d'importance ce que le numéro d'index, cette variable est inconnue parce que, dans mon application, c'est de saisir une liste de groupes d'ANNONCES qui existent dans une unité d'organisation spécifique.
De savoir si c'est une bonne idée ou pas, qui dépend de la situation. J'ai une autre application dans laquelle l'élément de désactiver dépend d'un autre paramètre. Dans cette application, je veux juste le helpdesk de voir que ce groupe est nécessaire, de sorte qu'ils ne vont pas les enlever.
Essayer De Code Ci-Dessous:
Je pense qu'une solution alternative est d'utiliser
Telerik
composants.Un
RadListControl
peut vous donner cette option:Cela fonctionne pour moi:
Ce qui signifie aucun élément ne peut être sélectionné
Pour plus d'info, vous pouvez le vérifier ici: SelectionMode Énumération.