2017-07-31 72 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