J'ai quelques éléments dans un ComboBox (WinForms avec C #). Je veux que leur contenu soit statique afin qu'un utilisateur ne puisse pas modifier les valeurs à l'intérieur lorsque l'application est exécutée. Je ne veux pas non plus que l'utilisateur ajoute de nouvelles valeurs à la ComboBox
157
combo.Properties.TextEditStyle = DisableTextEditor
C'est une autre méthode que j'utilise car changer
DropDownSyle
pour lui donnerDropDownList
un aspect 3D et parfois c'est tout simplement moche.Vous pouvez empêcher l'entrée de l'utilisateur en gérant l'
KeyPress
événement de la zone de liste déroulante comme ceci.la source
Paste
également une option . Je ne sais pas comment en ce moment.Paste
vous devrez créer un faux menu contextuel vide et l'assigner à la ComboBox.Yow peut changer le DropDownStyle dans les propriétés en DropDownList. Cela n'affichera pas la zone de texte pour le filtre.
(Capture d'écran fournie par FUSION CHA0S .)
la source
J'ai essayé ComboBox1_KeyPress mais cela permet de supprimer le caractère et vous pouvez également utiliser la commande copier coller. Mon DropDownStyle est défini sur DropDownList mais toujours inutile. J'ai donc fait l'étape ci-dessous pour éviter l'édition de texte combobox.
Le code ci-dessous gère la touche de suppression et de retour arrière. Et désactive également la combinaison avec la touche de contrôle (par exemple ctr + C ou ctr + X)
Dans le chargement du formulaire, utilisez la ligne ci-dessous pour désactiver le clic droit sur le contrôle de la zone de liste déroulante pour éviter le couper / coller via un clic de souris.
la source