第一篇。我有一个相对糟糕的问题——但我是新手,所以请原谅我。
我正在为朋友写一个简单的应用程序,用于跟踪一些日常问题/行为以报告目的。我试图使用一种向导风格,但我发现的向导示例要么过于复杂,要么过时。
我所拥有的是一个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