我正在用C#编写一个小型Windows窗体应用程序。基本上,它将逐步向用户询问一系列问题。我想为每个“步骤”创建一个新表单,所以我的问题是:这样做有标准的逻辑方式吗?
现在,我正在做的是创建一个包含每个不同形式的实例的类。我有“下一步”和“上一页”按钮,允许用户通过使用“show()”和“hide()”命令来回移动。
我遇到的一些问题: - 我希望表单弹出与前一个完全相同的位置(现在它有点偏斜) - 我担心我的实施方法不是最好的。这是一件相当普遍的事情,所以我确信有接受的程序。
我只是在寻找一些比我更有经验的人的见解。我很感激
例如...... 用户打开程序。 第一个屏幕要求他们选择日期。用户选择日期并点击“下一步”。 第一个屏幕关闭,下一个屏幕打开。 第二个屏幕要求用户选择一个文件。用户选择文件并单击“下一步”。 等
谢谢!
编辑:为了进一步澄清......安装屏幕与我想要的非常相似。
答案 0 :(得分:2)
有一些向导控制组件允许您这样做,或者您可以自己构建。
有关非常好的免费向导控制,请参阅此处:http://www.codeproject.com/KB/miscctrl/DesignTimeWizard.aspx
自己成长是比较简单的,但是单调乏味。我建议查看我发布的那个,检查代码,如果它不能正常工作,它确实有一个很好的设计,你可以从决定如何建立自己的。
但实际上,你真的不想做不同的形式。那将是一场噩梦。
您应该使用一个表单,并在表单上显示不同的面板,并在必要时显示为隐藏。
答案 1 :(得分:2)
我这样做的方式,并且我想像应用程序那样的大多数“向导”就是拥有一个表单,并在下面有一个占位符,将每个步骤显示为一个单独的用户控件。然后,当它们开始时,您在占位符中显示第一个控件,并且下一个和上一个按钮分别加载下一个\上一个控件,创建一个无缝的逐步向导,如体验。
这意味着每个步骤将显示在完全相同的位置,您不会分散每个步骤的分心,下一个出现等等,您可以通过一个地方管理整个事物,即表格。
阅读这些内容以获取更多想法:
http://www.codeproject.com/KB/cs/barryscsharpwizard.aspx
http://www.codeproject.com/KB/miscctrl/DesignTimeWizard.aspx
答案 2 :(得分:2)
你为什么不去TabControl?
下面的链接显示了一种更改活动元素样式的方法(突出显示用户所在的步骤):
答案 3 :(得分:0)
谢谢大家。我决定采用“向导”路线,我将使用我在网上找到的这个向导:
http://www.differentpla.net/content/2005/02/implementing-wizard-c 到目前为止它一直很容易使用。