使用弹出编辑器自定义DataGridView控件

时间:2012-11-02 15:44:19

标签: c# winforms datagridview custom-controls

我已经实施了MSDN Sample中演示的自定义DataGridViewColumnDataGridViewCellDataGridViewEditingControl类。

我遇到的问题是,虽然MSDN示例中的DateTimePicker能够将其日历选择器弹出并让它显示在下面的行的顶部,以及与其相邻的单元格,但是;我的控件被困在由DGV单元格大小定义的空间内。我的控件包含一个文本框和一个自动完成建议列表;所以我需要一种方法来显示列表,而不会使行像往常一样高几倍。

由于我从MSDN中获取示例并且仅更改为DateTimePicker替换MyControl以及其他相关更改的延伸,我认为基础DateTimePicker类中发生了魔术;但是不知道我需要在我的控制中做些什么才能让它的行为方式相同。

1 个答案:

答案 0 :(得分:3)

您实施的DataGridViewEditingControl已调整大小,移动到单元格区域,并在单元格进入编辑模式时可见。除了编辑控件之外,您还需要一个“弹出控件”,您可以在编辑控件激活时创建它,并在编辑控件变为活动状态时进行销毁。

这是一个简单的WinForms弹出控件示例:http://www.codeproject.com/Articles/17502/Simple-Popup-Control

但是,如果你想要的只是一个自动完成的单元格,你可以使用股票DataGridViewTextBoxColumnDataGridViewComboBoxColumn免费获得。

http://bytes.com/topic/c-sharp/answers/442061-autocompletestringcollection-text-box-datagridview-2-0-a