【问题标题】:VB.NET - Navigating through stacked panels wizard styleVB.NET - 浏览堆叠面板向导样式
【发布时间】:2013-03-30 16:48:19
【问题描述】:

第一篇文章在这里。我有一个相对不好的问题 - 但我是新手,所以请耐心等待。

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

我所拥有的是一个 Windows 窗体,其中 - 出于论证考虑 - 5 个面板,彼此堆叠在一起。每个面板都包含一组不同的控件(我无法完全重复使用所有控件或朝着“模板”方向前进)。面板下方是 3 个按钮 - 取消、返回、下一步。

我想要做的就是使用 Next 和 Back 按钮在面板之间导航。即当我单击“下一步”时,单击事件从面板 A 设置变量值,然后将其隐藏并加载面板 B,然后下一步设置 B 的值并加载 C 等等。

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

【问题讨论】:

  • 我并不是真的在寻找如何制作一个向导。我只是在寻找使用相同的后退/下一个按钮切换堆叠面板(而不是标签)的正确方法。

标签: vb.net panels


【解决方案1】:

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

【讨论】:

  • 谢谢马克。这正是我所需要的。
猜你喜欢
  • 2016-05-29
  • 1970-01-01
  • 1970-01-01
  • 2019-10-19
  • 2011-11-11
  • 1970-01-01
  • 1970-01-01
  • 2019-02-10
  • 1970-01-01
相关资源
最近更新 更多