我正在编写一些工作有点像向导一样,但我不知道如何去做。.NET的WinForms - “返回”按钮
我有多种形式。每个人都做一些不同的事情,这取决于以前的形式的数据。有一个“主表”从每一个获得输入并传递给另一个。通常我只是使用form.ShowDialog(),等待输入,实例化下一个表单并重复。但是,这次用户需要每隔一段时间回到以前的表单。
我用“GoTo”语句编写了一些非常简单的东西,所以你可以理解这个问题。是的,它可行,但我想知道是否有更好的方法来做到这一点。我一直困在这个问题一段时间,所以任何帮助将非常感谢!
TESTFORM:
Public Class TestForm
Public Property Result As Object
Public Sub New(data As Object)
InitializeComponent()
DoSomethingWithData(data)
End Sub
Private Sub DoSomethingWithData(data As Object)
Result = "something"
End Sub
End Class
Public Class MasterForm
Inherits Form
Public Sub New()
Dim button As New Button()
AddHandler button.Click, AddressOf Start
Controls.Add(button)
End Sub
Private Sub Start(sender As Object, e As EventArgs)
Step1:
Dim testForm1 = New TestForm("rainbows")
If testForm1.ShowDialog() = DialogResult.Cancel Then
Return
End If
Step2:
Dim testForm2 = New TestForm(testForm1.Result)
If testForm2.ShowDialog() = DialogResult.Cancel Then
GoTo Step1
End If
Step3:
Dim testForm3 = new TestForm(testForm2.Result)
If testForm3.ShowDialog() = DialogResult.Cancel Then
Goto Step2
End If
End Sub
End Class
表单可以嵌入到另一个表单的容器中。我将解决这个问题的方法是在页面登陆时依次实例化所有的表单,但是直到用户完成向导后才将它们留在内存中。返回可以是隐藏当前表单并显示前一个表单的简单情况。这里的问题是你的逻辑是顺序的,而不是更像是一个向导正在做什么的状态机,而是由用户选择做什么来改变。 –