Zone de liste déroulante dans DatagridView en Mode Édition
J'ai un DataGridView avec mode lecture-seule la valeur vrai (non modifiable) qui prend des valeurs à partir d'une base de données sur le formulaire de charge. Lorsque j'ai mis le mode de lecture seule à false (modifiable) de mode, je veux une colonne particulière (par exemple. Département) visible comme zone de liste déroulante afin que je puisse sélectionner les valeurs à partir de là. Et quand je rentre dans le mode Lecture Seule, la zone de liste déroulante devrait disparaître et DataGridView doit être visible en tant que normale. Comment faire?
Je suis à l'aide de C# framework 4.0, Winforms
Qu'entendez-vous par
Je veux dire, le datagridview être en mode normal et combobox diappear mais pas la colonne.
disappear
? Vous voulez l'ensemble de la colonne pour être caché, ou tout simplement la zone de liste déroulante être désactivé (ie. l'utilisateur ne peut pas sélectionner de la liste déroulante de la zone de liste déroulante?Je veux dire, le datagridview être en mode normal et combobox diappear mais pas la colonne.
OriginalL'auteur Sandy | 2011-09-16
Vous devez vous connecter pour publier un commentaire.
Voir la mise en œuvre au Zone de liste déroulante avec lecture seule comportement.
Vous pouvez également modifier le
DisplayStyle
basé sur lors de la lecture seule de laDataGridView
propriété est modifiée. Réglage de laDisplayStyle
àDataGridViewComboBoxDisplayStyle.Rien
permet de masquer la liste déroulante.Par exemple, la modification de la
ReadOnly
propriété avec un clic sur un bouton ressemblerait à quelque chose comme ceci:Modifiable:
Modifiable http://i51.tinypic.com/5e7o1w.jpg
ReadOnly:
ReadOnly http://i52.tinypic.com/1zgaxyt.jpg
OriginalL'auteur SwDevMan81
J'ai eu la solution à mon problème, juste pensé à le poster ici. En entrant dans le mode edit, en exécutant le code suivant peut résoudre le problème.
Avant le réglage de la dgc à dataGridCell nous pouvons ajouter des éléments des collections. Espérons que cela aide.
PROBLÈME: Si la Colonne et la Ligne d'index, devient même pendant le montage, j'obtiens une erreur de l'Opération n'est pas valide, car il en résulte un réentrant appel à la SetCurrentCellAddressCore fonction.
Je suis heureux d'avoir un tel commentaire 🙂
OriginalL'auteur Sandy
Si vous voulez cacher une zone de liste modifiable pour les lignes sélectionnées, vous pouvez utiliser le DataGridViewComboBoxDisplayStyle propriété
Les options sont ComboBox, DropdownBox ou Aucun
Dans l'exemple - seulement l'affichage de la zone de liste déroulante dans la colonne 4 si il y a une valeur dans la colonne 2
OriginalL'auteur andybrum