我正在編寫一些工作有點像嚮導一樣,但我不知道如何去做。.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
表單可以嵌入到另一個表單的容器中。我將解決這個問題的方法是在頁面登陸時依次實例化所有的表單,但是直到用戶完成嚮導後纔將它們留在內存中。返回可以是隱藏當前表單並顯示前一個表單的簡單情況。這裏的問題是你的邏輯是順序的,而不是更像是一個嚮導正在做什麼的狀態機,而是由用戶選擇做什麼來改變。 –