【发布时间】:2012-02-15 08:44:00
【问题描述】:
我使用 DataGridView,并在某些地方添加了控件(例如文本框、组合框)
dataGridView1.Controls.Add(comboBox);
comboBox.Focus();
问题在于,使用此控件,而不是通过使用 ENTER 提交选择导致 DataGridView “处理”键 -> 在单击输入而不是从组合框中选择某物后,datagridview 中的选择会更改(移动到下一个单元格) .
我使用类似的东西:
public class MyDataGridView:DataGridView
{
protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
{
if(keyData == Keys.Enter)
{
return true;
}
return base.ProcessCmdKey(ref msg, keyData);
}
}
但这会导致 datagridview 和组合框不响应 ENTER 和其他键...
附加信息:我必须使用 ComboBox 类,而不是 DataGridViewCombobox。任何人都可以帮助我如何在我的组合框中处理 ENTER 吗?
【问题讨论】:
-
您向我展示了解决类似问题的方法。我发布了一个解决方案here 我认为您必须在覆盖的 ProcessCmdKey 中处理 ENTER。我没有找到其他方法。
-
你解决了吗?我认为您可以在 MyDataGridViewClass 中保存对您的 ComboBox 的引用,以便您可以从 ProcessCmdKey 方法中对其进行操作。
标签: c# winforms datagridview combobox