VB.NET - 浏览堆叠面板向导样式

时间:2013-03-30 16:48:20

标签: vb.net panels

首先发布在这里。我有一个相对糟糕的问题 - 但我是新手,所以请耐心等待。

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

我所拥有的是一个Windows窗体,为了论证,它有5个面板,彼此叠加。每个面板包含一组不同的控件(我无法完全重复使用所有控件或进入'模板'方向)。面板下方是3个按钮 - 取消,后退,下一个。

我希望能够做的就是使用“下一步”和“后退”按钮在面板之间导航。即当我单击“下一步”时,click事件设置面板A中的变量值,然后隐藏它并加载面板B,然后Next设置B的值并加载C,依此类推。

我以为我可以用某种数组或对象列表来做这件事,但我不确定最好的方法。我在另一个论坛上问道,我得到的唯一答案是将按钮添加到面板中,让它们专门用于正面和背面的表格。这似乎非常低效,我知道有更好的方法来做到这一点。你们能否对此有所了解?

1 个答案:

答案 0 :(得分:0)

我个人会创建一个List<Of 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