2010-06-08 2 views
1

У меня эта проблема: У меня есть DataGridView, который считывает данные из БД, и я хочу, для целого столбца используйте выпадающий выбрать несколько значений ... я изменил столбец, используя тип DataGridViewComboBoxColumn и после того, как, по инициализации формы это:Populate DataGridViewComboBoxColumn выполнения

DataTable dt = new DataTable("dtControlType"); 
dt.Columns.Add("f_Id"); 
dt.Columns.Add("f_Desc"); 
dt.Rows.Add(0, "none"); 
dt.Rows.Add(1, "value 1"); 
dt.Rows.Add(2, "value 2"); 
dt.Rows.Add(3, "value 3"); 

pControlType.DataSource = dt; 
pControlType.DataPropertyName = "pControlType"; 
pControlType.DisplayMember = "f_Desc"; 
pControlType.ValueMember = "f_Id"; 

но при запуске программы (после этого кода) появляется следующее сообщение: error http://www.ghiboz.info/shots/4a4fe5fd.png

+0

Изображение повреждено. :) – hims056

ответ

1

решил сам: вот решение:

public class HGrid 
{ 
    public static void MakeComboBoxColumn(ref DataGridViewComboBoxColumn col, List<string> values) 
    { 
     DataTable dt = new DataTable(); 
     dt.Columns.Add("f_Id").DataType = typeof(Int32); 
     dt.Columns[0].DataType = typeof(Int32); 
     dt.Columns.Add("f_Desc"); 
     dt.Columns[1].DataType = typeof(string); 


     for (int i = 0; i < values.Count; i++) 
     { 
      dt.Rows.Add(i, values[i]); 
     } 

     col.DataSource = dt; 
     col.DisplayMember = dt.Columns[1].ColumnName; 
     col.ValueMember = dt.Columns[0].ColumnName; 
    } 
} 

и здесь является использование:

List<string> lControlType = new List<string>(); 
lControlType.Add("Semplice"); 
lControlType.Add("Esteso"); 
HGrid.MakeComboBoxColumn(ref pControlType, lControlType); 

Я надеюсь, что будет полезно для всех!

Смежные вопросы