我即将开始开发自定义日历列。我设计了一个实现IDataGridViewEditingCell
的列,之前允许用户编辑内容,而不需要单元格进入编辑模式(是一个弹出编辑框)。
对于我的日历列,如果用户点击将与单元格右侧对齐的日历图标,我希望具有此功能,这将弹出不同的控件,因此不需要单元格进入编辑模式,从而减少用户必须经历的点击次数。
但是,我也希望用户能够输入单元格,如果他们想输入日期(因为打字员通常更快),在这种情况下,单元格需要进入编辑模式,并使用适当的编辑控件。
关于此接口的MSDN文档声明如下:
此接口由DataGridViewCheckBoxCell等类实现,这些类派生自DataGridViewCell,并提供用于指定值的用户界面(UI),而无需托管编辑控件。无论单元格是否处于编辑模式,都会显示此情况下的UI。
其他单元格类型(如DataGridViewButtonCell)提供UI但不存储用户指定的值。在这种情况下,单元格类型不实现IDataGridViewEditingCell或托管编辑控件。
单元格处于编辑模式时显示编辑控件的单元格类型(如DataGridViewTextBoxCell)不实现IDataGridViewEditingCell,而是提供实现IDataGridViewEditingControl的伴随类。例如,DataGridViewTextBoxCell提供了一个DataGridViewTextBoxEditingControl,它派生自TextBox控件并实现IDataGridViewEditingControl。在这种情况下,单元格EditType属性设置为表示编辑控件类型的Type对象。
对我来说,这表明单元格无法实现此接口和托管编辑控件。
有没有人对这种情况有任何经验,我有什么选择?
答案 0 :(得分:0)
我从本文档中收集到的是,在实现IDataGridViewEditingCell
时,单元格是编辑控件。要获得所需的功能,您必须创建一个DataGridViewCalendarCell和一个由列中所有单元共享的关联DataGridViewCalendarEditingControl
。您可能还需要制作DataGridViewCalendarColumn
。