使DataGridView ComboxColumn的事件会影响另一个ComboBox列的集合
本文关键字:ComboBox 另一个 集合 影响 DataGridView ComboxColumn 事件 | 更新日期: 2023-09-27 18:20:05
你会认为我可以找到一个代码示例:假设我有一个带有DataGridView和2个ComboBoxColumns的WinForm。列不是数据绑定的,它们的所有选项都有一个静态集合。因此,当对第1列进行更改(即不同的选择)时,我想用程序更改第2列的项目集合。有什么例子吗?
您的问题是如何在DataGridViewComboBoxColumn
下为ComboBox
注册SelectedIndexChanged
事件处理程序,我们都知道DataGridViewComboBoxColumn
没有这样的事件。为了解决这个问题,我们有几种方法可以使用数据绑定源或静态源来处理DataGridViewComboBoxColumn
。因为你说你的Items
是为你的combobox正常添加的,所以我有这个解决方案:
private void dataGridView1_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
{
if(e.Control is DataGridViewComboBoxEditingControl){
((DataGridViewComboBoxEditingControl)e.Control).SelectedIndexChanged -= SelectedIndexChanged;
((DataGridViewComboBoxEditingControl)e.Control).SelectedIndexChanged += SelectedIndexChanged;
}
}
private void SelectedIndexChanged(object sender, EventArgs e)
{
DataGridViewComboBoxEditingControl combo = sender as DataGridViewComboBoxEditingControl;
//Change the source of the other combobox column accordingly
//
//////////////////////////////////////////////////////////
}
您必须添加代码来相应地重新填充另一个组合框列的源代码,这取决于您自己。