我已按照http://msdn.microsoft.com/en-us/library/7tas5c80.aspx中的步骤在datagridview上托管了我的自定义组合框(ComboBoxEx)。
在ComboExEditCtrl中,OnSelectedValueChanged方法被覆盖如下。
protected override void OnSelectedValueChanged(EventArgs eventargs)
{
valueChanged = true;
this.EditingControlDataGridView.NotifyCurrentCellDirty(true);
base.OnSelectedValueChanged(eventargs);
}
每当加载网格时,单元格上显示自定义控件(ComboExEditCtrl)。问题是当我更改自定义控件(ComboExEditCtrl)上的值并单击自定义控件消失的下一个单元格时。此外,当我在datagridview中单击同一单元格(自定义控件单元格)时,将显示自定义控件。
我遵循了MSDN(上面的链接)中描述的几乎相同的步骤。我不知道我错过了什么。请帮忙
答案 0 :(得分:0)
当您使用自己的控件创建自定义列/单元格时,datagridview不知道在显示模式下如何绘制控件。当您单击一个单元格时,单元格将进入编辑模式,并且将使用和显示设置为EditType的任何控件(并且可用作DatagridView.EditingControl)。在显示模式下,您必须覆盖DataGridViewCell.Paint方法以根据需要绘制单元格。