2

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

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

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

有关此接口的 MSDN 文档说明如下:

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

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

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

对我来说,这意味着一个单元格不能实现这个接口承载一个编辑控件。

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

4

1 回答 1

0

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

于 2013-01-21T13:16:28.210 回答