在DataGridViewComboBoxCell的组合框中禁用项目

时间:2019-06-17 09:46:23

标签: c# winforms datagridview combobox

我想禁用ComboBox单元格中DataGridview中的项目。

我已经知道如何使用ComboBox事件和DrawItem事件禁用SelectedIndexChanged中的项目,但是DataGridViewComboBoxCell中没有类似的事件或DataGridViewComboBoxColumn

所以我的问题是,如何禁用ComboBox中DataGridView中的任何项目?

在ComboBox中,我可以修改需要禁用的项目显示,如下所示: enter image description here

但是不能在DataGridView中执行相同的功能:

enter image description here

1 个答案:

答案 0 :(得分:2)

我认为对您来说最简单的选择是处理EditControlShowing事件,然后处理ComboBoxes print(out) [[['ele1'], ['ele4']], [['ele_2'], ['ele_5']], [['ele_3']]] 事件并执行您已经知道的操作。

在代码中设置SelectedIndexChanged时,您可以执行以下操作:

DataGridview

然后实现如下处理程序:

dataGridView1.EditingControlShowing += dataGridView1_EditingControlShowing;

最后,void dataGridView1_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e) { ComboBox combo = e.Control as ComboBox; if (combo != null) { // Both of these lines are essential, otherwise you will be handling the same event twice in some conditions combo.SelectedIndexChanged -= combo_SelectedIndexChanged; combo.SelectedIndexChanged += combo_SelectedIndexChanged; } } 事件的处理方式与您想要的完全相同:

SelectedIndexChanged