这几个比较忙,也没有想到写些什么,所以停笔了一个多月。本想写个Code生成技术呢,到Codesmith和T4就不知道该写些什么示例,比较实用也大家比较感兴趣的,所以暂时停下,如果关于Code生成技术你有什么好的想法,可以给我写建议。

   还是赶快进入正题,我以前写过一个 Sql查询生成模块 。当时用的MDI窗体,始终感觉有些不如意,所以想重构下,特别有些sql性能和生成规则。所以就开发了今天要讲的控件,我把它称为TableView控件,名字和实际联系不大,主要是刚开始时候没有考虑这么多,就是为了Sql查询重构而写的,后来感觉在以后的代码生成工具设计,Ui界面设计也会很有用,所以就把它独立了出来做成控件(我觉得代码生成工具最好还是像Linq一样提供DBML设计界面)。先看运行结果:

设计时:

运行时:

这是一个带有标题、图标、关闭按钮、可拖动的内容控件,其实相当于一个panel。我打算用它来取代以前的MDi窗体。现在唯一缺憾是在设计时还不能想Panel一样直接拖动加入子控件,还是必须写代码,在后台代码添加

this.tableViewControl1.ContentControls.Add(new ListBox() { Dock = DockStyle.Fill }); 
checkedListBox1.Dock 
= DockStyle.Fill; 
this.tableViewControl3.ContentControls.Add(checkedListBox1);

这个设计时,我正在设法解决。panel的设计时PanelControlDesigner继承至ParentControlDesignr,到市里面的代码很多,所以暂时想找一个更好的方式来实现,如果你有好的建议,希望赐教。感觉这个设计时,有失大雅了,呵呵。

  在这个控件中设计为用户控件,在控件添加了多个Panel:标题栏,内容框,右边框和下边框(为了可拖动改变Size)。

      控件下载:TableViewControl