2017-07-31 67 views
1

我有一个DataGridViewComboBoxCell控件的一些项目。我希望在用户从下拉列表中选择一个值时获取这些值。我不能使用EditingControlShowing可以使用DataGridViewComboBoxColumn。我需要DataGridViewComboBoxCell类似的事件处理程序。任何人都可以帮助请求。如何设置事件Datagridviewcombobox cell selectedchanged?

请在下面找到的代码示例:

private DataGridViewComboBoxCell NameDropDown = new DataGridViewComboBoxCell();  

public void SetDropDown(int index) 
     { 
     NameDropDown = new DataGridViewComboBoxCell();   
     DropDownValues(index); 
     for (int j = 0; j < DropDownOld.Items.Count; j++) 
     { 
      NameDropDown.Items.Add(DropDownOld.Items[j]); 
     } 
     dataGridView1.Rows[index].Cells[4] = NameDropDown; 
     } 

回答

1

是的,你可以使用EditingControlShowing事件得到一个处理的组合框。

然后挂钩SelectedIndexChanged的事件处理程序或任何你想要的事件和代码。

DataGridViewComboBoxEditingControl cbec = null; 

private void dataGridView1_EditingControlShowing(object sender, 
          DataGridViewEditingControlShowingEventArgs e) 
{ 
    if (e.Control is DataGridViewComboBoxEditingControl) 
    { 
     cbec = e.Control as DataGridViewComboBoxEditingControl; 
     cbec.SelectedIndexChanged -=Cbec_SelectedIndexChanged; 
     cbec.SelectedIndexChanged +=Cbec_SelectedIndexChanged; 
    } 
} 

private void Cbec_SelectedIndexChanged(object sender, EventArgs e) 
{ 
    if (cbec != null) Console.WriteLine(cbec.SelectedItem.ToString()); 
} 
+0

感谢它的工作。祝你今天愉快。 – Newbie0111