您可能认为我可以找到一个代码示例:假设我有一个带有 DataGridView 和 2 个 ComboBoxColumns 的 WinForm。这些列没有数据绑定,它们的所有选项都有一个静态集合。所以我想以编程方式更改第 2 列的项目集合,因为对第 1 列进行了更改(即不同的选择)。请问有什么例子吗?
问问题
234 次
1 回答
0
您的问题是如何为您的下注册SelectedIndexChanged
事件处理程序,我们都知道没有这样的事件。为了解决这个问题,我们有几种使用数据绑定源或静态源的方法。因为你说你的组合框是正常添加的,所以我有这个解决方案:ComboBox
DataGridViewComboBoxColumn
DataGridViewComboBoxColumn
DataGridViewComboBoxColumn
Items
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
//
//////////////////////////////////////////////////////////
}
您必须添加代码以相应地重新填充其他组合框列的源,这取决于您。
于 2013-06-27T16:10:43.237 回答