| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Общие вопросы по .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 имеют одинаковый список возможных значений. нет необходимости каждый раз(для каждой новой строчки) добавлять список возможных значений. можно в самом начале написать
хотя если я ошибаюсь, то вызывает вопросы строка кода:
зачем делать AddRange()? Нужно выполнять просто Add(). |