我已经实施了MSDN Sample中演示的自定义DataGridViewColumn
,DataGridViewCell
和DataGridViewEditingControl
类。
我遇到的问题是,虽然MSDN示例中的DateTimePicker
能够将其日历选择器弹出并让它显示在下面的行的顶部,以及与其相邻的单元格,但是;我的控件被困在由DGV单元格大小定义的空间内。我的控件包含一个文本框和一个自动完成建议列表;所以我需要一种方法来显示列表,而不会使行像往常一样高几倍。
由于我从MSDN中获取示例并且仅更改为DateTimePicker
替换MyControl
以及其他相关更改的延伸,我认为基础DateTimePicker
类中发生了魔术;但是不知道我需要在我的控制中做些什么才能让它的行为方式相同。
答案 0 :(得分:3)
您实施的DataGridViewEditingControl
已调整大小,移动到单元格区域,并在单元格进入编辑模式时可见。除了编辑控件之外,您还需要一个“弹出控件”,您可以在编辑控件激活时创建它,并在编辑控件变为活动状态时进行销毁。
这是一个简单的WinForms弹出控件示例:http://www.codeproject.com/Articles/17502/Simple-Popup-Control
但是,如果你想要的只是一个自动完成的单元格,你可以使用股票DataGridViewTextBoxColumn
或DataGridViewComboBoxColumn
免费获得。