0

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

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

在 form.cs 中

void dgv_SelectionChanged(object sender, EventArgs e){}

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

4

1 回答 1

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;
    }
于 2012-09-04T12:43:36.720 回答