C#:表单:逐步隐藏/显示表单

C#:表单:逐步隐藏/显示表单,c#,winforms,C#,Winforms,我正在用C#编写一个小的Windows窗体应用程序。基本上,它会以循序渐进的方式向用户询问一系列问题。我希望每个“步骤”都有一个新的形式,所以我的问题是:是否有一个标准的逻辑方法来完成这项工作 现在,我正在做的是创建一个类,它包含每个不同形式的实例。我有“下一步”和“上一步”按钮,允许用户通过对不同表单使用“show()”和“hide()”命令来来回切换 我遇到了一些问题: -我希望表单弹出到与前一个表单完全相同的位置(现在有点倾斜) -恐怕我的实施方法不是最好的。这是一件相当常见的事情,所以我

我正在用C#编写一个小的Windows窗体应用程序。基本上,它会以循序渐进的方式向用户询问一系列问题。我希望每个“步骤”都有一个新的形式,所以我的问题是:是否有一个标准的逻辑方法来完成这项工作

现在,我正在做的是创建一个类,它包含每个不同形式的实例。我有“下一步”和“上一步”按钮,允许用户通过对不同表单使用“show()”和“hide()”命令来来回切换

我遇到了一些问题: -我希望表单弹出到与前一个表单完全相同的位置(现在有点倾斜) -恐怕我的实施方法不是最好的。这是一件相当常见的事情,所以我确信有被接受的程序

我只是想从比我更有经验的人那里得到一些见解。我会通知你的

例如。。。 用户打开程序。 第一个屏幕要求他们选择一个日期。用户选择日期并单击“下一步” 第一个屏幕关闭,下一个屏幕打开。 第二个屏幕要求用户选择一个文件。用户选择文件并单击“下一步” 等等

谢谢


编辑:为了进一步澄清…安装屏幕与我想要的非常相似。

有一些向导控制组件允许您执行此操作,或者您可以构建自己的向导控制组件

有关非常好的免费向导控件,请参见此处:

自己成长相对来说比较简单,但很乏味。我建议您查看我发布的代码,检查代码,如果它不能正常工作,那么它确实有一个很好的设计,您可以从中学习如何构建自己的代码

但本质上,你真的不想做不同的形式。那一定是一场噩梦


相反,您应该使用一个表单,并在表单上显示隐藏的不同面板。

有一些向导控件组件允许您执行此操作,或者您可以构建自己的向导控件组件

有关非常好的免费向导控件,请参见此处:

自己成长相对来说比较简单,但很乏味。我建议您查看我发布的代码,检查代码,如果它不能正常工作,那么它确实有一个很好的设计,您可以从中学习如何构建自己的代码

但本质上,你真的不想做不同的形式。那一定是一场噩梦


相反,您应该使用一个表单,并在表单上显示不同的面板,这些面板会根据需要隐藏起来。

我想,大多数类似于“向导”的应用程序都会这样做,就是使用一个表单,并在下面有一个占位符,将每个步骤显示为单独的用户控件。然后,当它们启动时,您将在占位符中显示第一个控件,并且“下一步”和“上一步”按钮将分别加载“下一步\上一步”控件,从而创建一个类似于向导的无缝逐步体验

这意味着每一步都会显示在完全相同的位置,你不会因为每一步的消失和下一步的出现而分心,你可以通过一个地方管理整个事情,表单

阅读以下内容,了解更多想法:


我想大多数类似“向导”的应用程序都是这样做的,就是在下面有一个表单和一个占位符,将每个步骤显示为一个单独的用户控件。然后,当它们启动时,您将在占位符中显示第一个控件,并且“下一步”和“上一步”按钮将分别加载“下一步\上一步”控件,从而创建一个类似于向导的无缝逐步体验

这意味着每一步都会显示在完全相同的位置,你不会因为每一步的消失和下一步的出现而分心,你可以通过一个地方管理整个事情,表单

阅读以下内容,了解更多想法:


为什么不使用TabControl

下面的链接显示了更改活动元素样式的方法(以突出显示用户所处的步骤):


为什么不使用TabControl

下面的链接显示了更改活动元素样式的方法(以突出显示用户所处的步骤):


谢谢大家。我已决定使用“向导”路线,我将使用在线找到的向导:


到目前为止,它非常容易使用。

谢谢大家。我已决定使用“向导”路线,我将使用在线找到的向导:


到目前为止,它非常容易使用。

+1答案与我的答案几乎相同,在一个案例中有相同的链接。@David Great minds,嗯?!你刚刚设法打败了我+1.背对着你;)+1用于DesignTimeWizard链接。对于检查清单来说效果很好。+1与我的答案几乎相同,并且在一个案例中有相同的链接。@David Great minds,嗯?!你刚刚设法打败了我+1.背对着你;)+1用于DesignTimeWizard链接。对于检查清单来说效果很好。太好了!非常感谢你!“巫师”是一个我没想到的关键词。今晚晚些时候我会更仔细地检查你的链接。太好了!非常感谢你!“巫师”是一个我没想到的关键词。今晚晚些时候,我会更仔细地检查你的链接。+1因为这种方法同样有效。这就是我在创建我的第一个向导时“作弊”的方式。谢谢,我真的对此进行了调查并尝试了一下。它实际上很容易使用,并且安装起来很快。实际上我在网上找到了一种隐藏标签的方法。我遇到的问题是,当你有太多选项卡时,我无法隐藏弹出的小箭头。我问题下方的链接显示了如何隐藏选项卡。顺便说一句,+1因为这种方法同样有效。这就是我在创建我的第一个向导时“作弊”的方式。谢谢,我真的对此进行了调查并尝试了一下。它实际上很容易使用,并且安装起来很快。事实上我在网上找到了一个隐藏的方法