打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
自定义DataGridView列为ListView列
写在前面:DataGridView是一个强大的控件,它的每一列都可以是一个控件,如DataGridViewTextBox,DataGridViewComboBoxColumn,DataGridViewCheckboxColumn,这些Column的命名,就是代表这一列是从控件变过来。从名字出发,我们可以想像,也许会有DataGridViewDateTimePickerColumn,DataGridViewDataGridViewColumn之类的控件,也是可以从控件中想像出一些意思出来。下面介绍一下DataGridViewListColumn,这是多列选定的解决方案,下拉多列的意义在于同时设置多个单元格的数据,一般情况下都要编写一些代码的。

效果图
下图是下拉一个ListView控件,事实上,好多人不喜欢使用ListView来做行显示的控件,因为我们有强大的DataGridView控件。是的,没有,我们可以使用listView来显示表格类的数据,我们也当然可以使用DataGridView了。


 

代码分析
细心的话,你可以留意到下拉控件,其实是一个ComboBox+MultiColumn样式,其实,也有人称呼这一控件是MultiColumnComboBox控件。你也完全可以从小作坊网找到相关的代码与说明的。
而此MultiColumnComboBox控件对应的Column,本文中称为DataGridViewListViewColumn,如果你还不了解DataGridView***Column的自定义方法的话,可以参考
http://www.myfirm.cn/20089/20080925102315582.html
Cell中的InitializeEditingControl方法是一个重要的方法,它的工作就正如名字一样,就是当前的格子开始编辑时的准备工作。如设置EditingControl的Text之类,这里的EditingControl就是单元格弹出的控件了。弹出的控件是DataGridViewListViewEditingControl,直接继承了ListView控件。这样ListView控件的大部分方法和事件都可以开发出来了。
EditingControlWantsInputKey是一个很好的方法,它可以设置当前编辑的控件可以使用的按键,如上下左右键是DataGridView中最好用的键,你可以在这个方法中设置这几个键交给EditingControl来处理,而不是父控件DataGridView来处理。
不过,Enter回车键是一个麻烦的键,你会发觉无论在Cell中怎样设置都好像不能关闭它本来有的功能。
是的,初步的试验告诉我,只有重定义ProcessCmdKey方法,是最好的解决方案,这是一个带Keys类型参考的方法,很好操作的。

DataGridViewListViewColumn源代码


出处:小作坊网Chakman
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
四种方案解决ScrollView嵌套ListView问题
巧用VFP的Grid表格控件
power query从文件夹获取数据方法
真正简单的Datagridview显示行号方法
Excel如何获取实时股票数据
Delphi TListview[1]功能及常用属性介绍
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服