2011-12-17 85 views
1

当comboboxstyle设置为Simple并且用户在字段中键入内容并按下Enter键时,会触发KeyUp事件。 在datagridview中,当我将ComboboxColumn和样式设置为Simple KeyUp事件时未触发KeyPress和KeyDown。而且我创建了自己的自定义datagridview,并且editmode中的KeyUp也未被触发。并且我创建了我自己定制的DataGridViewComboBoxCell和OnKeyUp,EnterUnsharesRow,KeyDownUnsharesRow事件不会被调用。 当用户在此组合框中输入内容并按Enter时,该文本被清除。如何在单元格中提交输入的文本以及哪个事件被触发?DataGridViewComboBoxCell with ComboBoxStyle简单不捕捉Enter键

感谢

回答

2

你需要在DataGridView的EditingControlShowing活动期间访问底层的编辑控制。

void dataGridView1_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e) 
{ 
    if (e.Control is DataGridViewComboBoxEditingControl) 
    { 
     DataGridViewComboBoxEditingControl cb = 
      e.Control as DataGridViewComboBoxEditingControl; 
     cb.DropDownStyle = ComboBoxStyle.Simple; 

     cb.KeyUp += new KeyEventHandler(cb_KeyUp); 
    } 
}