【问题标题】:Cycling through labels in visual basics在视觉基础中循环浏览标签
【发布时间】:2018-05-03 04:33:07
【问题描述】:

我对视觉基础非常陌生,并且被分配了标签之间的循环。它需要两个按钮和三个标签。 假设标签是 1 2 3 这两个按钮称为“向左旋转”和“向右旋转” 当用户按下“向右旋转”时,标签变为 3 1 2 依此类推,而“向左旋转”则相反。

我的第一个按钮是这样的

    Private Sub btnRight_Click(sender As Object, e As EventArgs) Handles btnRight.Click
    lbl1.Text = "3"
    lbl2.Text = "1"
    lbl3.Text = "2"

我的方向正确吗?我希望我说得通。谢谢!

【问题讨论】:

  • 欢迎来到 SO!它做它应该做的事吗?似乎您需要找到一种方法来抽象您的数据并使用这些按钮对其进行操作,而不是简单地使用硬编码的字符串文字重新标记控件 - 而且有很多,许多方法来实现这一点,有些比其他更好;我建议想出任何“有效”的东西(暂时不要担心优雅或高效的代码,只要让它正确地完成它的工作),然后在Code Review 上展示它 - 评论者会帮助你改进它,你会在这个过程中学到很多东西! ;-)
  • 这是人们期望代码只是凭空出现而实际上不知道该代码应该做什么的情况之一。我不是在谈论最终结果,而是在谈论到达那里的步骤。如果你必须用笔和纸完成同样的任务,那么我打赌你可以,这意味着你知道必须做什么。写下这些步骤。您应该能够将这些步骤交给没有经验的其他人,他们应该能够按照这些步骤获得正确的结果。这就是你的算法,这就是你需要在代码中实现的。
  • 请注意,编写算法不需要任何编程经验,因此这不是编程问题。一旦你进入编程部分,你应该已经有了一个算法,所以你应该能够向我们展示你的算法在哪里卡住了。如果你不能这样做,那么你不应该在这里发帖。

标签: vb.net winforms controls


【解决方案1】:

如果TextBox的个数是动态的,可以存储在List或者Array中

Dim list As New List(Of Label)
list.Add(lbl1)
list.Add(lbl2)
.....
list.Add(lblN)

要循环它,你只需要遍历所有列表并切换数字

Dim temp As String
temp = list.Item(0).Text // store the first item before it getting replaced
Dim i As Integer
For i = 0 To list.Count - 2 //If it contains minimum of 3 item minimal
    list.Item(i).Text=list.Item(i+1).Text
Next i
list.Item(list.Count-1) = temp.Text // replace the last item with the first one

有很多比我做的更有效的方法,但这将解释List / Array的基础

【讨论】:

  • 嘿文森特!感谢您向我介绍 Arrays。经过几次谷歌搜索后,我对现在的 Array 有了一些了解。我想这可能是我需要的东西
猜你喜欢
  • 2014-08-21
  • 2013-04-02
  • 1970-01-01
  • 2011-11-18
  • 2016-05-28
  • 2012-12-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多