事件冒泡用于组合框项目选择,它位于datagridview内

时间:2012-09-04 06:08:48

标签: c# events datagridview

我有一个datagrid组合框列,将一些数据从数据库绑定到组合列 我必须提出一个选择组合框项目的事件,请帮助我,我在program.cs中使用了以下代码

this.datagrdADDTEMP.SelectionChanged+= new System.EventHandler(this.dgv_SelectionChanged);

在form.cs

void dgv_SelectionChanged(object sender, EventArgs e){}

但是当我点击单元格时它会引发事件,我想在从组合框中选择项目时引发事件。请帮助我对这个概念事件冒泡的新手

1 个答案:

答案 0 :(得分:0)

它不起作用,因为您使用的是DataGridView的SelectionChanged事件,而不是ComboBox事件。

尝试处理EditingControlShowing事件(确保在代码或设计器中实际连接它):

    string str = null;

    private void dataGridView1_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
    {
        var cell = e.Control as ComboBox;
        if (cell != null)
        {
            cell.SelectedIndexChanged -= doWork;
            cell.SelectedIndexChanged += doWork;
        }
    }

    private void doWork(object sender, EventArgs e)
    {
        var tb = dataGridView1.EditingControl as ComboBox;
        if (tb != null)
            str = tb.SelectedValue != null ? tb.SelectedValue.ToString() : null;
    }