2010-02-16 4 views
3

J'ai un DataGridView et je suis peuplant par un DataTable. Lors de l'initialisation, ajouter DataColumns au DataTable puis définissez les DataSource du DataGridView au DataTable. Voici le code:Ajout d'un Combobox dans DataGridView par Datatable

DataTable mTable = new DataTable("Test"); 

DataColumn col = new DataColumn; 
col.DataType  = System.Type.GetType("System.Boolean"); 
col.ColumnName = "First"; 
col.ReadOnly = false; 
mTable.Columns.Add(col); 

col   = new DataColumn; 
col.DataType = System.Type.GetType("System.String"); 
col.ColumnName = "Second"; 
col.ReadOnly = false; 
mTable.Columns.Add(col); 

this.myGridView.DataSource = mTable; 

Cela fonctionne très bien, cependant, je veux faire une des colonnes en tant que combobox. Je pense que je dois faire quelque chose avec le type de données de la colonne, mais je ne suis pas sûr de savoir comment le faire. Quelqu'un peut-il me donner des indications à ce sujet?

Répondre

1

C'est vieux, mais je pensais que je vais essayer d'y répondre de toute façon depuis que j'avais moi-même la même question il y a un certain temps.

Tout d'abord, vous ne pouvez pas faire une colonne DataTable de type DataGridViewComboBoxColumn. DataColumn hérite de System.Data, tandis que DataGridView * Columns hérite de System.Windows.Forms. Ce que vous pouvez essayer est ceci: Une fois que votre DataTable est lié à votre DataGridView, les colonnes du DataTable devraient apparaître sur le DataGridView dans le concepteur. Si vous développez ensuite la propriété Columns de votre DataGridView, vous devriez voir vos colonnes de votre DataTable ont été ajoutées à la liste. Sélectionnez la colonne que vous souhaitez et dans le volet de droite, il y aura une propriété appelée "ColumnType". Le type par défaut est DataGridViewTextBoxColumn, mais vous pouvez le remplacer par DataGridViewComboBoxColumn.

+0

Cela ne fonctionne pas parce que je crée mon dataTable programme et il a un nombre variable de colonnes. –

0

changer la déclaration suivante: DataGridViewComboBoxColumn column1 = new DataGridViewComboBoxColumn()

+0

Mes colonnes sont DataColumns ici, ou plus précisément System.Data.DataColumn. Je crois que je ne peux pas ajouter un DataGridViewComboBoxColumn à DataTable – Aamir

+0

est-il possible de contourner l'ensemble DataTable et remplir la grille de données directement? –

+0

Oui, j'essaie la même chose maintenant. Mais je voulais savoir quelle est la méthode pour le faire par DataTable – Aamir

Questions connexes