winforms datagrid在编辑时将列更改为组合框

winforms datagrid在编辑时将列更改为组合框,winforms,datagrid,combobox,Winforms,Datagrid,Combobox,我的winforms应用程序上有一个datagrid列。当用户选择一个特定的单元格时,该单元格应转到数据绑定的组合框,用户可以编辑该单元格 如何在editmode上显示combobox?在EditingControlShowing事件中有哪些内容 void dataGridView1_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e) { BindingSource binding

我的winforms应用程序上有一个datagrid列。当用户选择一个特定的单元格时,该单元格应转到数据绑定的组合框,用户可以编辑该单元格


如何在editmode上显示combobox?

在EditingControlShowing事件中有哪些内容

void dataGridView1_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
{
 BindingSource bindingSource = this.dataGridView1.DataSource as BindingSource;
 Person person = bindingSource.Current as Person;
 BindingList<personType> bindingList = this.FindPersonTypes(person);

 DataGridViewComboBoxEditingControl comboBox = e.Control as DataGridViewComboBoxEditingControl;
 comboBox.DataSource = bindingList;
}
void dataGridView1\u EditingControlShowing(对象发送方,DataGridViewEditingControlShowingEventArgs e)
{
BindingSource BindingSource=this.dataGridView1.DataSource作为BindingSource;
Person-Person=bindingSource。当前为Person;
BindingList BindingList=this.FindPersonTypes(person);
DataGridViewComboBoxEditingControl comboBox=e.控件作为DataGridViewComboxeditingControl;
comboBox.DataSource=bindingList;
}
参考号:

  • 要将单元格转换为组合框,请执行以下操作:
this.yourdatagridname.Rows[x].Cells[y]=新DataGridComboxCell()

其中x,y表示要转换的单元格

  • 要使其可编辑,请执行以下操作:
this.yourdatagridname.Rows[x].Cells[y].ReadOnly=false