代码生成器开发笔记(3)-界面设计
程序 2009-06-13 13:48:34 阅读73 评论0 字号:大中小订阅
第一个问题当然是界面设计了。准备做成VS2005风格,也就是多文档、支持窗体停靠,可以任意拖放窗体位置。
最初是想自己实现,难度应该不大,不外乎窗体的自绘、消息的响应,会用到Win32 API,以前用VB时,对Win32 API还是比较熟悉的。
后来觉得会在这上面花不少时间,不值得,于是上网找了找,还真找到一个非常好用的停靠控件。我把它放在纳米盘上面了。http://www.namipan.com/d/5c84c97e38578e308568ab698881b118a988f1d90d310700
控件是国外的,附带源码,写得非常好,用起来也很简单。下载解压后就可以直接使用。
新建WinForm项目,把主窗体改为MDI窗体。在工具箱上单击右键,点“选择项”,找到控件解压的目录,在Src/WinFormUi/bin/debug(Release)目录下找到WeifenLuo.WinFormsUI.Docking.dll文件,确定后工具箱上会多一个控件:DockPanel。把DockPanel控件放到MDI窗体上,Dock属性设为Fill即可。
接下来可以设计停靠窗体了。新建窗体,把默认的继承Form类改为继承WeifenLuo.WinFormsUI.Docking.DockContent,该窗体就成为一个可以在MDI窗体中停靠的窗体了。
DockContent是WeifenLuo.WinFormsUI.Docking.dll中派生自Form的一个类,除了具有普通窗体的特征外,添加了一些属性,并重载了Show方法,要使窗体可以停靠,必须继承DockContent类。
DockContent的ShowHint属性是用来指示窗体默认停靠位置,这是一个枚举值,其中Document元素表示窗体将填充整个MDI窗体,也就是VS系列中的代码编辑器的效果,其它值的效果则VS中工具箱、属性窗口的效果。
显示停靠窗体时,需要使用DockContent中重载的Show方法,语法如下:
FormView form=new FormView();
form.Show(dockPanel); //dockPanel,MDI窗体上的DockPanel控件。