Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
VB.NET-通过堆叠面板导航向导样式_Vb.net_Panels - Fatal编程技术网

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

VB.NET-通过堆叠面板导航向导样式,vb.net,panels,Vb.net,Panels,第一个帖子在这里。我有一个相对不好的问题——但我对这一点还不熟悉,所以请容忍我 我正在为一个朋友编写一个简单的应用程序,用于跟踪一些日常问题/行为,以便进行报告。我试图使用几乎是向导式的方式,但我发现的向导示例要么过于复杂,要么过于陈旧 我有一个Windows窗体,为了便于讨论,它有5个面板,每个面板叠在一起。每个面板都包含一组不同的控件(我无法完全重复使用所有控件或按照“模板”的方向进行操作)。面板下方有3个按钮-取消、后退、下一步 我想要做的就是使用“下一步”和“上一步”按钮在面板之间导航。

第一个帖子在这里。我有一个相对不好的问题——但我对这一点还不熟悉,所以请容忍我

我正在为一个朋友编写一个简单的应用程序,用于跟踪一些日常问题/行为,以便进行报告。我试图使用几乎是向导式的方式,但我发现的向导示例要么过于复杂,要么过于陈旧

我有一个Windows窗体,为了便于讨论,它有5个面板,每个面板叠在一起。每个面板都包含一组不同的控件(我无法完全重复使用所有控件或按照“模板”的方向进行操作)。面板下方有3个按钮-取消、后退、下一步

我想要做的就是使用“下一步”和“上一步”按钮在面板之间导航。i、 e.当我单击“下一步”时,单击事件从面板A设置变量值,然后隐藏它并加载面板B,然后设置B和加载C的值,依此类推


我想我可以用某种数组或对象列表来实现这一点,但我不确定最好的方法是什么。我在另一个论坛上问过,我得到的唯一答案是在面板上添加按钮,并让它们专门用于前后移动表单。这似乎效率太低了,我知道有更好的办法。你们能解释一下吗

我个人会创建一个
列表
,并将面板添加到其中。然后使用整数并在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
公共类表单1
将myPanels作为列表(面板的)进行调整=新列表(面板的)
Dim计数为整数=0
私有子btnCancel\u单击(发件人作为System.Object,e作为System.EventArgs)处理btnCancel。单击
计数=0
myPanels(计数)。BringToFront()
端接头
私有子btnNext\u单击(发送方作为System.Object,e作为System.EventArgs)处理btnNext。单击
如果计数小于4,则
计数+=1
其他的
计数=0
如果结束
myPanels(计数)。BringToFront()
端接头
私有子bntPrevious_Click(发送方作为System.Object,e作为System.EventArgs)处理bntPrevious。单击
如果计数>0,则
计数-=1
其他的
计数=4
如果结束
myPanels(计数)。BringToFront()
端接头
公共分新()
'设计器需要此调用。
初始化组件()
myPanels.Add(Panel1)
myPanels.Add(Panel2)
myPanels.Add(Panel3)
myPanels.Add(Panel4)
myPanels.Add(面板5)
myPanels(计数)。BringToFront()
端接头
末级

可能的副本我并不真正想知道如何制作向导。我只是在寻找使用相同的后退/下一步按钮切换堆叠面板(而不是选项卡)的正确方法。谢谢Mark。这正是我需要的。