在C#中为Win表单创建向导

时间:2010-01-18 05:23:24

标签: c# winforms

是否有关于如何在C#中创建向导的框架或教程。我需要为用户提供一系列选择/用户输入。我认为奇才队是一个理想的方式。我需要每页上的下一个/后退按钮。我还没有创建过巫师。任何输入都会非常有用。

4 个答案:

答案 0 :(得分:2)

我正在为CodeProject撰写一篇关于“穷人的向导”的简短文章,该文章使用标准的WinForms TabControl作为其“基础”:但这将在几周内没有准备好。

但是考虑使用标准WinForms TabControl的优势可以为您提供:

  1. “less code”==“cheap”:它将处理Manzoor Ahmed上面评论所建议的所有“业务”(交换一堆面板),代码少得多。

  2. “没有绘画”==“少工作”:它可以在没有任何特殊的拥有者或绘画代码的情况下使用(上面由Jay Riggs引用的CodeProject上的席梦思文章有一些可选的自定义绘画用于渐变,但我有没有检查该代码是否可以在没有任何自定义绘图/绘画的情况下使用它。当然,请注意,Manzoor的建议也不会要求自定义绘图/绘画。

  3. 用户界面的灵活性:您可以显示标签,或隐藏标签。

  4. 以下是关于如何开始将TabControl用作“向导”的两个想法:

    I:如果您不希望它们可见,如何隐藏Tabs(假设在名为Form1的Form上名为tabControl的TabControl):

    一个。如果要恢复选项卡的可见性:创建Region类型的Form范围变量,并在Form Load事件中将TabControl的当前Region放入该变量:

    Region tabOriginalRegion;
    
    private void Form1_Load(object sender, EventArgs e)
    {
        tabOriginalRegion = tabControl1.Region;
    }
    

    湾将此添加到“表单加载”事件以隐藏选项卡

    // hide the tabs
    tabControl1.Region = new Region(tabControl1.DisplayRectangle);
    

    II:隐藏标签后:显然,您可以在每个标签页上放置自己的按钮来控制前后移动。如果选项卡 可见,那么您将需要处理TabControl的'选择事件:在该事件处理程序中,您可以使用e.TabPage获取“目标”选项卡,并且您可以取消导航到通过设置e.Cancel = true来确定“目的地”标签。

    希望这很有用。

答案 1 :(得分:1)

我在CodeProject中使用过这个:

Wizard Form Implementation

其他向导

Search CodeProject

答案 2 :(得分:1)

我发现DevExpress XtraWizard控件非常适合使用

答案 3 :(得分:1)

试试这个

C# Winforms Wizard — CodeGuru.com

或者,您也可以使用面板。每次向前或向后移动时,只需更换面板即可。