WinForm中控件折叠控件【超好看】
刚到一家新公司,领导下发任务要用铯系统做一个表格折叠显示,这真是把我难倒了,自己工作6年一直以来都是做理学士的系统。这如果在理学士里面那太简单了,JqGrid默认都自带,可是控件不支持折叠啊。自己一点经验没有,怎么办呢?于是上网搜了相关视频,资料,开始学习起来。最后借鉴源码封了这么一个东西,发出来分享下,也能让自己加深印象。
首先不多说,上图。如果大家感谢还不错,请继续往下阅读:
大概的效果就是这样。
上代码。
1、首先重写DataGridview,代码如下:
公共类主控件: DataGridView { # region字段private Listint当前行=new Listint();内部静态int RowDefaultHeight=;内部静态int rowexpandheight=;内部静态int rowDefaultDivider=;内部静态int rowexpanddvider=-;内部静态int RowDividerMargin=;内部静态bool collapseRow//detailControl变量作为一个容器用来保存子表格公共细节控件子视图=新细节控件(){ Visible=false };//VBConversions Note:初始值不能在此处赋值,因为它是非静态的。赋值已被移动到类构造函数中。//内部系统窗户。表格。imagelist row headericonlist私人系统。组件模型。容器组件=空;//数据集_ CDATA集;string _ foreign key string _ primarykey string _ filter format私有控件类型EControlTypepublic int expandrowinindex=;# endregion #区域构造函数///摘要///通过传递过来的枚举判断是两级还是三级展开,表的对应关系通过关系来读取///所以调用此构造函数的时候必须要讲关系设置正确,才能正确显示层级关系///oDataSet。关系。添加('',oDataSet .表['T'].列['菜单_标识],oDataSet .表['T'].列[' Menu _ ID ']);///oDataSet .关系。添加('',oDataSet .表['T'].列['菜单名称],oDataSet .表['T'].列[' Menu _ Name ']);///这两次增加的顺序不能颠倒,必须先添加一、二级的表关联,再添加二、三级的表关联////summary///param name=' CDATA set '数据源数据集,里面还有各个表的对应关系/param///param name=' eControlType '枚举类型/parampublic MasterControl(数据集cDataset,控件类型eControlType){ setmaster控件(数据集cDataset,eControlType);}///摘要///第二种使用方法////summary///param name=' lst data '折叠控件第一层的集合/param///param名称=' lstData '折叠控件第二层的集合/param///param名称=' lstData '折叠控件第三层的集合/param///param name='dicRel '
版权声明:WinForm中控件折叠控件【超好看】是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。

















