我按照http://msdn.microsoft.com/en-us/library/7tas5c80.aspx中的步骤在 datagridview 上托管了我的自定义组合框 (ComboBoxEx) 。
- 我创建了从 DataGridViewColumn 派生的 DataGridVIewComboExColumn。
- 名为“DataGridVIewComboExCell”的自定义单元格是从 DataGridViewCell 创建的。
- 最后创建了我的自定义编辑控件“ComboExEditCtrl”(从 ComboBoxEx 派生并实现 IDataGridViewEditingControl)。
在 ComboExEditCtrl 中,OnSelectedValueChanged 方法被覆盖,如下所示。
protected override void OnSelectedValueChanged(EventArgs eventargs)
{
valueChanged = true;
this.EditingControlDataGridView.NotifyCurrentCellDirty(true);
base.OnSelectedValueChanged(eventargs);
}
每当加载网格时,自定义控件 (ComboExEditCtrl) 就会显示在单元格上。问题是当我更改自定义控件 (ComboExEditCtrl) 上的值并单击下一个单元格时,自定义控件会消失。此外,当我在 datagridview 中单击同一单元格(自定义控件单元格)时,会出现自定义控件。
我遵循了 MSDN 中描述的几乎相同的步骤(上面的链接)。我不知道我错过了什么。请帮忙