2014-10-16 99 views
0

我已经能够在datagridview中创建一个现有的列组合框列,我该怎么做几列?另外,如何在组合框项目中添加现有的不同记录?用户将能够从组合框项目中选择值或自行编写。到目前为止,我的代码是:c#如何设置datagridview中的几个combobox列

  dgvLoadTable.DataSource = null; 
      var context = new CadAdminEntities(); 
      var TableName = cboSelectTable.Text.ToString(); 
      var rawData = context.GetType().GetProperty(TableName).GetValue(context, null); 
      var truncatedData = ((IQueryable<object>)rawData).Take(0); 
      var source = new BindingSource { DataSource = truncatedData }; 
      dgvLoadTable.DataSource = source; 
      dgvLoadTable.ReadOnly = false; 
      dgvLoadTable.AllowUserToAddRows = true; 

      DataGridViewComboBoxCell dgvCol = new DataGridViewComboBoxCell(); 

      for (int row= 0; row < dgvLoadTable.Rows.Count; row++) 
      { 
      for (int col = 0; col < dgvLoadTable.Columns.Count; col++) 
        { 
         if(col==2||col==4) 
         this.dgvLoadTable[col,row] = dgvCol; 
       //This part throws error, as there is only one combobox 
        } 
      } 

      dgvLoadTable.Refresh(); 

回答

0

这很容易解决:

this.dgvLoadTable[col, row] = new DataGridViewComboBoxCell(); 

将为每种情况下新鲜ComboBoxCell。

您可以删除该行

DataGridViewComboBoxCell dgvCol = new DataGridViewComboBoxCell(); 

注意,因为你有一个数据绑定DGV和列很可能是自动创建的,你应该记住,这往往是需要关掉的是自动,创造一切在设置DataSource之前手动设置列。

+0

谢谢一堆:D – feather 2014-10-16 15:07:14

相关问题