Работа с DataGridViewComboBoxColumn - C#

Узнай цену своей работы

Формулировка задачи:

Всем здравствуйте. помогите пожалуйста разобраться. Есть 4 колонки 2 из них DataGridViewComboBoxColumn. Код программы создания combobox :
private void RepiarRegion_Click(object sender, EventArgs e)
        {
            DataGridViewComboBoxColumn Region1 = new DataGridViewComboBoxColumn();
            Region1.HeaderText ="Регион из БД";
            Region1.Name = "Регион из БД";
            ArrayList SpisokRegion = GetArrayRegion();
            Region1.Items.AddRange(SpisokRegion.ToArray());
            dataGridView1.Columns.Add(Region1);
            dataGridView1.Columns["Регион из БД"].DisplayIndex = 1;   
 
            DataGridViewComboBoxColumn Client1 = new DataGridViewComboBoxColumn();
            Client1.Name = "Заказчик из БД";
            ArrayList SpisokClient = GetArrayClient();
            Client1.Items.AddRange(SpisokClient.ToArray());
            dataGridView1.Columns.Add(Client1);
            dataGridView1.Columns["Заказчик из БД"].DisplayIndex = 3;     
        }
Код программы обработка события :
private void dataGridView1_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
         {
             combo = e.Control as ComboBox;            
             if (combo != null )
             {                
                 combo.SelectedIndexChanged -= new EventHandler(combo_SelectedIndexChanged);
                 combo.SelectedIndexChanged += combo_SelectedIndexChanged;
             }
         }
 
private void combo_SelectedIndexChanged(object sender, EventArgs e)
         {
             string selectedItem = (sender as ComboBox).SelectedItem.ToString();
             dataGridView1.Rows[dataGridView1.CurrentRow.Index].Cells[0].Value = selectedItem;  
              
         }
При клике и выборе значения из combobox значение присваивается в первую ячейку. Но вот проблема когда я выбираю 2-ой combobox то опять записывается в первую. Я так понимаю что необходимо по имени combobox заполнять соответствующую ячейку. Помогите пожалуйста с получением имени. Ну или если есть еще варианты , буду рад... Заранее спасибо.

Решение задачи: «Работа с DataGridViewComboBoxColumn»

textual
Листинг программы
ComboBox box = sender as ComboBox;
string boxName = box.Name;

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 4.5 из 5