在C#中为Windows窗体创建向导

我是在C#.Net中创建Windows窗体应用程序向导中的新功能。 所以我对创建向导没有任何想法。 请给我一些关于创建多个向导的想法。

问候,镭

    很多方法来做到这一点。 为每个向导步骤创建一个表单是可能的,但非常尴尬。 而丑陋的,当用户改变步骤时,闪烁很多。 使每个步骤UserControl都可以工作,只需将它们切换到表单的Controls集合中即可。 或者让其中一个Visible = true为每一步。 统一通信设计趋于变得复杂,但您必须为每个UI项目添加公共属性。

    简单和RAD的方式是使用TabControl。 设计师可以很好地工作,因为它允许您在设计时切换标签,并在每个标签上放置控件。 切换步骤是微不足道的,只需更改SelectedIndex属性。 唯一不平凡的是在运行时隐藏标签。 处理Windows消息仍然很容易。 添加一个新的类到您的窗体并粘贴下面显示的代码。 编译。 将新的控件从工具箱的顶部放到表单上。

    using System; using System.Windows.Forms; class WizardPages : TabControl { protected override void WndProc(ref Message m) { // Hide tabs by trapping the TCM_ADJUSTRECT message if (m.Msg == 0x1328 && !DesignMode) m.Result = (IntPtr)1; else base.WndProc(ref m); } } 
     class WizardPages : TabControl { protected override void WndProc(ref Message m) { // Hide tabs by trapping the TCM_ADJUSTRECT message if (m.Msg == 0x1328 && !DesignMode) m.Result = (IntPtr)1; else base.WndProc(ref m); } protected override void OnKeyDown(KeyEventArgs ke) { // Block Ctrl+Tab and Ctrl+Shift+Tab hotkeys if (ke.Control && ke.KeyCode == Keys.Tab) return; base.OnKeyDown(ke); } } 

    你需要创建自己的符合你自己的喜好。 一个小技巧将会为你创建一个名为“frmWizard”的基础表单,然后所有的向导窗口都将从它继承。 您应该将常用对象或向导对象放在基类上,并根据需要修改派生类中的\覆盖它们。