DataGridView下拉框事件的捕获和处理


private DataGridViewComboBoxEditingControl dataGridViewComboBox = null;

//捕获事件

private void dgvTableFields_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
        
{
            
if (e.Control is DataGridViewComboBoxEditingControl && this.dgvTableFields.CurrentCell.ColumnIndex ==4
                                                                
&& this.dgvTableFields.CurrentCell.RowIndex !=-1)
            
{               
                
this.dataGridViewComboBox = (DataGridViewComboBoxEditingControl)e.Control;
              
//增加委托处理

                dataGridViewComboBox.SelectionChangeCommitted 
+= new EventHandler(this.dataGridViewComboBox_SelectionChangeCommitted);

            }

        }

        
private void dataGridViewComboBox_SelectionChangeCommitted(object sender, EventArgs e)
        
{

           
//处理业务
            MessageBox.Show(((ComboBox)sender).Text);
        }


        
private void dgvTableFields_CellEndEdit(object sender, DataGridViewCellEventArgs e)
        
{
            
if (this.dataGridViewComboBox != null)
            
{
                dataGridViewComboBox.SelectionChangeCommitted 
-= new EventHandler(this.dataGridViewComboBox_SelectionChangeCommitted);
                
this.dataGridViewComboBox =null;
            }

        }

posted on 2009-07-14 18:07  冷月孤峰  阅读(304)  评论(0)    收藏  举报