Est-il un moyen d'ajouter un contrôle (par exemple un bouton) à une Winforms DataGridView cellule en C#?
(Ce que je vise est de mettre les différents types de contrôles dans les différentes cellules de la grille...)
OriginalL'auteur Boris | 2011-10-27
vous pouvez faire comme ceci....
Il y a deux façons de le faire:
exemple, convertir un DataGridViewTextBoxCell à
DataGridViewComboBoxCell type.
DataGridView, définir son emplacement et de la taille pour s'adapter à la cellule que pour être
de l'hôte.
Voir mon exemple de code ci-dessous qui illustre les astuces.
Extrait De Code
La première méthode a bien fonctionné, le deuxième, le contrôle de "tomber" de la grille lorsque le défilement. Je suppose que vous pourriez utiliser le format de l'événement pour se déplacer de nouveau.
OriginalL'auteur rockyashkumar
La
DataGridViewButtonColumn
est un type de colonne qui contient un bouton cliquable. Vous pouvez ajouter vos propres commandes pour les cellules:http://msdn.microsoft.com/en-us/library/7tas5c80.aspx
Garder à l'esprit qu'il n'est pas toujours trivial, mais j'ai vu quelqu'un mettre un
DataGridView
dans une cellule - regardé bizarre.Il y a aussi les autres colonnes:
Vous pourrez les modifier dans l'éditeur de colonne dans le designer de Visual Studio, ou ajouter du code dans les Colonnes de la collection.
Pas de ne pas le Bouton de la colonne, vous pouvez créer un type de colonne qui héberge aucun contrôle et d'ajouter ce type de colonne de la grille. Par exemple, vous pourriez faire un DataGridViewNumericUpDownColumn qui héberge un contrôle NumericUpDown. La colonne est codé à l'hôte d'un particulier type de contrôle, il n'est pas à l'exécution de la décision.
Mais je pense qu'il y a toujours un malentendu: Avec cette approche, l'ensemble de la colonne d'obtenir le même type de contrôle? Parce que ce que j'aimerais avoir, c'est une autre forme de contrôle dans chaque cellule.
Oui, dans cette approche, l'ensemble de la colonne, il obtient, parce que généralement l'ensemble de la colonne contient le même type de données dans la grille. Je ne l'ai pas vu, je ne connais, une solution qui permet à des cellules individuelles pour contenir les différents contrôles d'édition.
En fait, vous pouvez définir un DataGridViewPanelColumn qui a la capacité d'ajouter et de retirer les enfants des contrôles du panneau en fonction de ce que vous avez besoin. Pas nécessairement le plus propre ou plus simple si.
OriginalL'auteur Adam Houldsworth
Je voudrais ajouter dans le concepteur et de faire d'un modèle de champ. Facile à faire, et mettre ce que vous voulez dans le datagridview
Exemple
OriginalL'auteur KH1229