Winforms 单击DataGridViewComboxCell时调用什么事件

Winforms 单击DataGridViewComboxCell时调用什么事件,winforms,datagridview,Winforms,Datagridview,我在DataGridViewComboxCell中有一个项目列表;我想在用户单击某个值时立即执行某些操作 什么是活动,或者我如何做我想做的事 当我们离开单元格时,会调用CellValueChanged…您可以处理组合框的selectededindexchanged private void dataGridView1_EditingControlShowing(object sender, DataGridViewEditingControlShowin

我在DataGridViewComboxCell中有一个项目列表;我想在用户单击某个值时立即执行某些操作

什么是活动,或者我如何做我想做的事


当我们离开单元格时,会调用CellValueChanged…

您可以处理组合框的selectededindexchanged

private void dataGridView1_EditingControlShowing(object sender, 
                    DataGridViewEditingControlShowingEventArgs e)
{
    ComboBox cb = e.Control as ComboBox;
    if (cb != null)
    {
        // first remove event handler to keep from attaching multiple:
        cb.SelectedIndexChanged -= new
        EventHandler(cb_SelectedIndexChanged);

        // now attach the event handler
        cb.SelectedIndexChanged += new 
        EventHandler(cb_SelectedIndexChanged);
    }
}

void cb_SelectedIndexChanged(object sender, EventArgs e)
{
    MessageBox.Show("Selected index changed");
}

另一种可能的方法是:

private void dataGridView1_EditingControlShowing(object sender,  
                                                 DataGridViewEditingControlShowingEventArgs e)
{
    ComboBox cb = e.Control as ComboBox;
    if (cb == null)
        return;

    dataGridView1.EditingControlShowing -= dataGridView1_EditingControlShowing;
    cb.SelectedIndexChanged += cb_SelectedIndexChanged;
}

void cb_SelectedIndexChanged(object sender, EventArgs e)
{
    MessageBox.Show("Selected index changed");
}

你什么都只做一次。

谢谢!我使用你的基本想法,我能够完成我的工作!!!现在很多压力都消失了。。。