博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

DataGridView中comboBox(DataGridViewComboBoxColumn)的事件编写

Posted on 2012-01-04 17:47  hyruur  阅读(335)  评论(0编辑  收藏  举报

DataGridView中虽然绑定了一个comboBox,但是这个comboBox没有任何事件。

今天想加一个SelectedIndexChanged事件,遍寻网络后找到一可行方法,总结如下:

 

·········10········20········30········40········50········60········70········80········90········100·······110·······120·······130·······140·······150
  1. DataGridViewComboBoxColumn Fparmrangedesc = new DataGridViewComboBoxColumn();  
  2. ……  
  3. ……  
  4. dgView.Columns.Add(Fparmrangedesc);  
  5. dgView.EditingControlShowing += new DataGridViewEditingControlShowingEventHandler(dgView_EditingControlShowing); //主要是这句  
  6.   
  7. 写事件方法  
  8. private void dgView_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)  
  9. {  
  10.     if (dgvReportParms.CurrentCell.GetType().Name == "DataGridViewComboBoxCell")  
  11.             {  
  12.                 ((ComboBox)e.Control).SelectedIndexChanged -= new EventHandler(ComboBox_SelectedIndexChanged);  
  13.                 ((ComboBox)e.Control).SelectedIndexChanged += new EventHandler(ComboBox_SelectedIndexChanged);  
  14.             }  
  15. }  
  16.   
  17. private void ComboBox_SelectedIndexChanged(object sender, EventArgs e)  
  18. {  
  19. //里面想写什么你说了算!  
  20. }  

 

最后,最重要的一步:把DataGridView的CausesValidation属性一定要改为false.(这一步是为什么我还没有搞清楚,希望各位高手帮我解释一下!谢谢了!)