我的想法是,我会有一组表单,用户会点击“前进”和“后退”按钮,当前表单将更改为另一个表单。我的问题是我可以编写只弹出一个新表单的代码,但我不知道如何“替换”我当前的表单。这通常是怎么做的?
答案 0 :(得分:3)
创建一组UserControl,并以单一形式在Panel中添加和删除它们。 (并将Dock
设置为Fill
)
答案 1 :(得分:3)
我最近做的是创建一个已经存在按钮的表单和一个包含每个步骤的大面板。该对话框将接受IWizStep实例形式的初始步骤,并且事物将从那里滚动。
每个步骤都是一个暴露UserControl的类,负责该步骤的视觉方面,而逻辑本身则由类处理(这有点复杂,但这是一般的想法)。
由步骤实现并由对话框接受的IWizStep接口如下:
Interface IWizStep
Event StateChanged As EventHandler
ReadOnly Property Control As Control
ReadOnly Property Title As String
ReadOnly Property CanMovePrevious As Boolean
ReadOnly Property CanMoveNext As Boolean
Function MovePrevious As IWizStep
Function MoveNext As IWizStep
End Interface
要将所有内容组合在一起,控制器类将知道如何组合每个给定操作所需的步骤。因此,我有一个控制器,比如“Emit Order”,需要10个步骤,还有一个“批量发出订单”的控制器,只需要几个步骤。
答案 2 :(得分:1)
您可以定义一个充当“向导”的用户控件。它只需要您拥有的按钮和一系列内容面板,只需在按下按钮时切换面板,假设在面板上的控件内满足某些条件。没有真正明确的“向导”制造商,因为滚动你自己的向导非常容易。
您不需要对当前表单进行“替换”,您只需在项目中添加一个新表单即可。如果您确实需要出于任何原因,只需使用Me.Controls
获取控件集合,将其复制到某个位置,然后将新控件添加到其中。当您不需要向导时,请再次将它们换掉。一般来说,制作新表格通常是最好的做法!