一壶开水.net


哈哈,你好啊
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

写了一个类似于安装程序向导的组件

Posted on 2005-07-03 22:44  一壶开水  阅读(673)  评论(0)    收藏  举报
        最近做的项目中,很多界面是提供给用户定制的,就像安装程序一样,给用户来一步一步的执行,而这些应用中,界面有很大的不同,而制定过程中的逻辑与数据的存储也都不一样,但是其中的共同点就是都有向导的基本按钮,即上一步,下一步,完成,取消。于是写了这么一个向导组件,其作用就是使开发者在做向导界面时,不必再关心一些基本的操作,只将其每一步骤的界面定义好,并通过向导组件实现UI的加载与逻辑的实现。 

使用方法

wizard.dll引用到项目中,在HALABAZI的命名空间下有三个类Wizard  WizardStepBase  WizardStepList。其中wizard继承自UserControl ,像使用其它组件一样,把Wizard组件放到所需要放置向导的窗体或容器上,所有的向导步骤都在这一个组件上进行加载
wizard交出了四个事件,preSetpEvent,nextStepEvent,finishEvent,cancelEvent。分别是点四个按钮时的四个事件。
还有一个StepData的属性,StepData是一个哈希表,用来存放一些全局的数据使用 

然后定制好所有步骤,每一个步骤都定制成一个用户控件,但改变其继承类为WizardStepBase,WizardStepBase是作为所有步骤的基类来使用的。

在步骤的编写中,有以下说明


1.        每一步都有一个入口,要重写基类的Run方法,里面可以放一些对于该步骤初始化的一些工作

2.        指定下一步是哪一步,要重写基类的GetNextStep方法,返回一个整形,必须要有此方法

3.        指定此步骤是否可以点完成,要重写基类的CanOver方法,返回一布尔值,如不重写,默认为false

4.        可以设置canNextcanPre的值来控制是否能点上一步,或下一步

5.  如果重写的CanOver或改变了canNext,canPre,一定要调用基类的onChange方法,来刷新界面 
 

最后在调用向导前,首选将所有的步骤实例化,然后调用wizard. StepList.Add方法将所有控件添加到wizard当中,并调用wizard.Run来指定第一个运行哪一步


 整个组件的代码与测试用的例子:Wizard.rar