【学习前提】
·对.NET有所了解
·理解C#的委托
·对设计模式有所了解(主要:命令模式)
【编码平台】
Visual Studio 2008(C#)
(如果使用的是Visual Studio 2005,则只能打开代码文件查看[对此本人深表歉意],但可运行已编译好的程序观看效果——系统要求已安装.NET Framework)
【框架说明】
本程序模仿Windows的控制台(mmc.exe),其最终目的是能动态加载“单元”(如面板、程序等),形成一个“活动的功能目录组”——即可将一些“单元”加载到该“控制台”中,然后像打开目录一样打开一个个功能单元,进行操作。
从软件设计的角度讲,主要是为了达到“解耦”(在可能的后续版本中,将可看到“操作界面”、“功能模块”的分离的示例)。
【控制台说明】
本程序实现一个基本的[控制台]框架。在目前的0.10a版本中,只要编写的“面板”(如示例代码中的ScanPanel、TCtest)继承自“原始面板”(如示例代码中的cPanel),则拥有了可以“被控制台加载的能力”(具体参考Form1.cs中加载面板的代码)。
同时,控制台提供了“面板树”(TreeView)来对加载的面板进行切换,所以每个面板必须提供一些“必要的属性”给控制台(在当前版本中有:面板名称PNL_NAME、子面板树——对含TabControl的面板有该要求)。
【面板说明】
允许面板上有多个TabControl(这样可扩大单个面板添加更多的功能组件),并且每个TabPage内最多可再容纳1个TabControl(TabControl嵌套)。同时为了方便向控制台的面板树加载连接节点,含TabControl的面板最好附加上一“不可见”的TreeView组件(组件上的节点应与TabControl和TabPage顺序有一定的关联性,具体参考示例代码中的TCtest)。
【其他】
由于当前的控制台还非常简陋,只是实现了最基本的加载功能,并且在性能和容错性方面还没有进行比较仔细的测试,所以该版本只作为一些编程爱好者的学习作品(大虾请不要BS我)。
==================================
作者:glife
QQ:342097771
==================================