【问题标题】:Creating Wizards for Win Forms in C#在 C# 中为 Win 窗体创建向导
【发布时间】:2010-01-18 05:23:23
【问题描述】:

是否有任何关于如何在 C# 中创建向导的框架或教程。我需要为用户提供一种方法来进行一系列选择/用户输入。我认为Wizards将是一个理想的方式。我需要每页上的下一步/后退按钮。我还没有创建向导。任何输入都会非常有帮助。

【问题讨论】:

标签: c# winforms


【解决方案1】:

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

但想想使用标准 WinForms TabControl 的优势:

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

  2. "no painting" == "less work" :它可以在没有任何特殊的所有者绘制或绘画代码的情况下使用(上面 Jay Riggs 引用的关于 CodeProject 的 Simmons 文章有一些可选的渐变自定义绘画,但我有没有深入检查该代码以查看它是否可以在没有任何自定义绘图/绘画的情况下使用)。请注意,当然,Manzoor 的建议也不需要自定义绘图/绘画。

  3. UI 的灵活性:您可以显示或隐藏选项卡。

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

I:如果您不希望它们可见,如何隐藏选项卡本身(假设在名为 Form1 的表单上有一个名为 tabControl1 的 TabControl):

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

Region tabOriginalRegion;

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

b.将此添加到表单加载事件以隐藏选项卡

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

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

希望这是有用的。

【讨论】:

    【解决方案2】:

    我发现DevExpress XtraWizard 控件非常好用

    【讨论】:

    • 是的,XtraWizard 很漂亮,但它仍然保持步态紧密耦合。
    【解决方案3】:

    我在 CodeProject 中使用过这个:

    Wizard Form Implementation

    Search CodeProject 用于其他向导。

    【讨论】:

      【解决方案4】:

      试试这个

      C# Winforms Wizard — CodeGuru.com

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

      【讨论】:

      • 这主要是一个元向导(用于表单创建的向导),而不是一般的“向导控件”。
      猜你喜欢
      • 2011-01-21
      • 2011-11-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多