在DataGridView中嵌入非编辑小部件
时间:2020-03-06 14:40:23 来源:igfitidea点击:
没有处于编辑模式时,有什么方法可以将小部件嵌入到数据绑定的DataGridViewCell中吗?
例如,我们要在一个单元格中显示一个现有的日历小部件。该单元格包含逗号分隔的日期列表。我们要显示日历而不是文本。
我们可以创建一个自定义单元格并覆盖Draw方法,以便它在该单元格中绘制日历,但是这将无法处理现有日历小部件中已有的鼠标悬停工具提示。
[更新]
我尝试了TcKs的建议,但无法创建可行的解决方案。请参阅该答案的评论。
解决方案
我们可以代替绘制日历,而是使用日历控件,将它们设置为父级网格,并为其设置与单元格相同的边界(left,top,width,height)。
我们应该从DataGridViewColumn(例如,DataGridViewCalendarColumn)派生自己的类型,并返回DataGridViewCalendarCell(也必须自己创建)作为CellTemplate。
可以在MSDN文章"为DataGridView控件构建自定义单选按钮单元和列"中找到详细说明。