自定义DataGridView列实现IDataGridViewEditingCell但是还有一个编辑控件?

时间:2013-01-21 12:35:18

标签: c# .net winforms datagridview

我即将开始开发自定义日历列。我设计了一个实现IDataGridViewEditingCell的列,之前允许用户编辑内容,而不需要单元格进入编辑模式(是一个弹出编辑框)。

对于我的日历列,如果用户点击将与单元格右侧对齐的日历图标,我希望具有此功能,这将弹出不同的控件,因此不需要单元格进入编辑模式,从而减少用户必须经历的点击次数。

但是,我也希望用户能够输入单元格,如果他们想输入日期(因为打字员通常更快),在这种情况下,单元格需要进入编辑模式,并使用适当的编辑控件。

关于此接口的MSDN文档声明如下:

  

此接口由DataGridViewCheckBoxCell等类实现,这些类派生自DataGridViewCell,并提供用于指定值的用户界面(UI),而无需托管编辑控件。无论单元格是否处于编辑模式,都会显示此情况下的UI。

     

其他单元格类型(如DataGridViewButtonCell)提供UI但不存储用户指定的值。在这种情况下,单元格类型不实现IDataGridViewEditingCell或托管编辑控件。

     

单元格处于编辑模式时显示编辑控件的单元格类型(如DataGridViewTextBoxCell)不实现IDataGridViewEditingCell,而是提供实现IDataGridViewEditingControl的伴随类。例如,DataGridViewTextBoxCell提供了一个DataGridViewTextBoxEditingControl,它派生自TextBox控件并实现IDataGridViewEditingControl。在这种情况下,单元格EditType属性设置为表示编辑控件类型的Type对象。

对我来说,这表明单元格无法实现此接口托管编辑控件。

有没有人对这种情况有任何经验,我有什么选择?

1 个答案:

答案 0 :(得分:0)

我从本文档中收集到的是,在实现IDataGridViewEditingCell时,单元格编辑控件。要获得所需的功能,您必须创建一个DataGridViewCalendarCell和一个由列中所有单元共享的关联DataGridViewCalendarEditingControl。您可能还需要制作DataGridViewCalendarColumn