VB.通过堆叠面板向导样式导航



第一篇。我有一个相对糟糕的问题——但我是新手,所以请原谅我。

我正在为朋友写一个简单的应用程序,用于跟踪一些日常问题/行为以报告目的。我试图使用一种向导风格,但我发现的向导示例要么过于复杂,要么过时。

我所拥有的是一个Windows窗体-为了争论的缘故- 5面板,堆叠在彼此的顶部。每个面板都包含一组不同的控件(我无法完全重复使用所有控件或采用"模板"方向)。面板下面是3个按钮-取消,返回,下一步。

我想做的就是用Next和Back按钮在面板之间导航。例如,当我点击"Next"时,点击事件设置面板A的变量值,然后隐藏它并加载面板B,然后Next设置B的值并加载C,以此类推。

我认为我可以用某种数组或对象列表来做这件事,但我不确定最好的方法是什么。我在另一个论坛上问过,我得到的唯一答案是在面板上添加按钮,并让它们特定于前后显示表单。这看起来效率很低,我知道有更好的方法。你们能解释一下吗?

我个人会创建一个List<Of Panel>并将panel添加到其中。然后使用一个整数并将其从0增加到4,使用BringToFront显示当前面板。像这样。

Public Class Form1
    Dim myPanels As List(Of Panel) = New List(Of Panel)
    Dim count As Integer = 0
    Private Sub btnCancel_Click(sender As System.Object, e As System.EventArgs) Handles btnCancel.Click
        count = 0
        myPanels(count).BringToFront()
    End Sub
    Private Sub btnNext_Click(sender As System.Object, e As System.EventArgs) Handles btnNext.Click
        If count < 4 Then
            count += 1
        Else
            count = 0
        End If
        myPanels(count).BringToFront()
    End Sub
    Private Sub bntPrevious_Click(sender As System.Object, e As System.EventArgs) Handles btnPrevious.Click
        If count > 0 Then
            count -= 1
        Else
            count = 4
        End If
        myPanels(count).BringToFront()
    End Sub
    Public Sub New()
        ' This call is required by the designer.
        InitializeComponent()
        myPanels.Add(Panel1)
        myPanels.Add(Panel2)
        myPanels.Add(Panel3)
        myPanels.Add(Panel4)
        myPanels.Add(Panel5)
        myPanels(count).BringToFront()
    End Sub
End Class

相关内容

  • 没有找到相关文章