0

您可能认为我可以找到一个代码示例:假设我有一个带有 DataGridView 和 2 个 ComboBoxColumns 的 WinForm。这些列没有数据绑定,它们的所有选项都有一个静态集合。所以我想以编程方式更改第 2 列的项目集合,因为对第 1 列进行了更改(即不同的选择)。请问有什么例子吗?

4

1 回答 1

0

您的问题是如何为您的下注册SelectedIndexChanged事件处理程序,我们都知道没有这样的事件。为了解决这个问题,我们有几种使用数据绑定源或静态源的方法。因为你说你的组合框是正常添加的,所以我有这个解决方案:ComboBoxDataGridViewComboBoxColumnDataGridViewComboBoxColumnDataGridViewComboBoxColumnItems

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 回答