如何在Winform中的数据网格视图中为DataGridViewComboBoxColumn创建事件处理程序

时间:2010-11-11 13:10:51

标签: c# winforms datagridview

我在数据网格视图中有一个DataGridViewComboBoxColumn。我附上了一个列表作为数据源。现在我需要根据组合框的选定索引触发一个事件。我怎样才能完成它呢?在此先感谢

1 个答案:

答案 0 :(得分:7)

鉴于SelectedIndex属性属于编辑控件(仅在DataGridView处于编辑模式时才处于活动状态),您可以将事件处理程序附加到EditingControlShowing,如下所示:

void dataGridView_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e) {
    if (e.Control is ComboBox) {
        // remove handler first to avoid attaching twice
        ((ComboBox)e.Control).SelectedIndexChanged -= MyEventHandler;
        ((ComboBox)e.Control).SelectedIndexChanged += MyEventHandler;
    }
}

请注意,控件的实际类型为DataGridViewComboBoxEditingControl,其扩展为ComboBox。您只需要基类的功能,而且输入的次数更少。