【问题标题】:What event is called when we click on a DataGridViewComboBoxCell当我们点击 DataGridViewComboBoxCell 时会调用什么事件
【发布时间】:2012-11-01 17:31:40
【问题描述】:

我在 DataGridViewComboBoxCell 中有一个项目列表;我想在用户单击一个值后立即做某事。

事件是什么,或者我该怎么做?

当我们离开单元格时调用CellValueChanged...

【问题讨论】:

    标签: winforms datagridview


    【解决方案1】:

    您可以处理组合框的 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");
    }
    

    【讨论】:

    • 谢谢!我使用了你的基本想法,我能够完成我的工作!!!现在压力很大了……
    【解决方案2】:

    另一种可能的方法是:

    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");
    }
    

    所有事情都只做一次。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-07-29
      • 2014-05-16
      相关资源
      最近更新 更多