要达到WebForm下Wizard控件的相似效果,关键的部分设计基本一样,各关键部分如下:
1. enum WizardStepType //向导的类型
2. class WizardStep //单步向导
3. class WizardStepCollection //向导集合
4. class WizardDesigner //提供设计时支持的向导类
5. class Wizard //主要的向导类
首先是WizardStepType的定义,这个与WebForm下的基本一样:
接着是WizardStep的定义,它的关键成员有以下几个:
1)bool AllowNext //是否允许向导跳到下一步
2) bool isLocked //向导是否处于锁定状态
3) WizardStepType StepType //向导类型
4) Cancel,Previous,Next,Finish Button //向导基本按钮
着重要介绍的是 向导基本按钮的实现:
在使用控件的时候,记得要为使用的 基本向导按钮 添加 EventHandler, 否则会提示空引用错误。
WizardStepCollection 就是一个普通的集合类,主要是方便对向导中各个步骤的处理。
Wizard 继承于 UserControl, 比较重要的成员是:
1)int ActivateStep //当前向导步骤的Index
2)WizardStep ActivateWizardStep //当前步骤
这两个成员控制了向导步骤的跳转。
WizardDesigner 为 Wizard 提供设计时支持,类似 TabControl 控件一样,具体请看源代码。
以下是使用中的Wizard 控件:
虽然这个控件比较简单,但至少满足了我的需要,希望也能给大家带来帮助!
控件不完美的地方很多,希望大家积极提出批评和建议,小弟虚心接受!
源代码下载:/Files/XiaoFaye/WinForm.Wizard.zip