1

在普通组合框中,当 comboboxstyle 设置为 Simple 并且用户在字段中键入内容然后按 Enter KeyUp 事件被触发。在 datagridview 中,当我将 ComboboxColumn 和样式设置为 Simple KeyUp 事件时,不会触发 KeyPress 和 KeyDown。而且我创建了自己的自定义数据网格视图,并且编辑模式下的 KeyUp 也不会被触发。而且我已经创建了我赢得的自定义 DataGridViewComboBoxCell 和 OnKeyUp、EnterUnsharesRow、KeyDownUnsharesRow 事件没有被调用。当用户在此组合框单元格中键入内容并按 Enter 时,此文本将被清除。如何在单元格中提交输入的文本以及触发哪个事件?

谢谢

4

1 回答 1

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);
    }
}
于 2011-12-18T15:04:45.910 回答