Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Общие вопросы по .NET и C# > ComboBox в DataGridView


Автор: Kosteles 25.2.2008, 13:53
Привествую всех!

Проблемы с ComboBox в DataGridView.

В DataGridView два столбца, первый обычный текстовый DataGridViewTextBoxColumn, второй DataGridViewComboBoxColumn. В первый добавляются данные без проблем, с вторым никак не получается нормально добавить данные, добавляю сначало список значений (AddRange), потом устанавливаю текущие значение (Value) из списка, добавляю новую строку: в результате получается так, что в первом столбце все введенные значения на своих местах, а в стобце (DataGridViewComboBoxColumn) все добавленные списки собраны в один и только для последней строки. Никак не получается сделать для всех строк отдельный одинаковый список...


//Добавление строк в dataGridView2
for(j=1;j<arr1[0].Length;j++)//arr1[0].Length - количество строк

{

   for (i = 0; i < nam.Length; i++)//nam.Length - количество элементов в списке ComboBox 

   {

      ((DataGridViewComboBoxCell)dataGridView2.Rows[j - 1].Cells[1]).Items.AddRange(nam[i]+" "+ver[i]+" ("+fil[i]+")"); //добавление элементов в ComboBox 
//установка текущего значения, если встречается из списка
         if ((AppDomain.CurrentDomain.SetupInformation.ApplicationBase+arr2[0][j]) == fil[i])

              ((DataGridViewComboBoxCell)dataGridView2.Rows[j - 1].Cells[1]).Value=(nam[i]+" "+ver[i]+" ("+fil[i]+")");        
 
}

    dataGridView2.Rows[j - 1].Cells[0].Value = arr1[0][j];//установка значения первого столбца текущей строки    

    dataGridView2.Rows.Add();//добавление новой строки

}  



Помогите please разобраться в чем дело :/

Заранее благодарю!

Автор: vponomarov 26.2.2008, 16:37
проблема в том, что в DataGridView все колонки типа DataGridViewComboBoxColumn имеют одинаковый список возможных значений.
нет необходимости каждый раз(для каждой новой строчки) добавлять список возможных значений.
можно в самом начале написать 
Код

((DataGridViewComboBoxColumn)dataGridView2.Columns[1]).Items.AddRange(список возможных значений); 


хотя если я ошибаюсь, то вызывает вопросы строка кода:
Код

((DataGridViewComboBoxCell)dataGridView2.Rows[j - 1].Cells[1]).Items.AddRange(nam[i]+" "+ver[i]+" ("+fil[i]+")"); 

зачем делать AddRange()? Нужно выполнять просто Add().

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)