【发布时间】:2015-08-20 12:50:35
【问题描述】:
我目前正在学习 VB.NET
我对阅读复选框(或文本框或组合框)或在组框中阅读有疑问
例如我有这个窗体
我有类似的代码
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
For Each cb As CheckBox In GroupBox1.Controls
MsgBox(cb.Name)
Next
End Sub
我期待阅读复选框 1 -> 2 -> 3-> 4 -> 5
但是,它有时读作 5->4->3->2->1 或 3->4->2->1->5
我在想“Tabindex”可能会影响阅读顺序,所以我为每个复选框更改了 TabIndex。但是,更改阅读复选框的顺序并不影响
有什么方法可以控制 groupbox 中复选框(或任何东西)的读取顺序吗?
谢谢
----- 更新------
我对 Linq 有了想法。 我认为这将是解决此问题的最简单方法。 当我得到正确答案时我会更新 谢谢**
【问题讨论】:
-
而不是迭代控件/对象引用,您可以使用包含其名称的
List(of String),它们应该在 ZOrder 中,但是当您摆弄表单时会发生变化,因此如果您有代码取决于在订单上,使用列表。 -
@Plutonix 感谢您的帮助。这是示例代码。如果表单的选项复选框数量超过 10 个,则搜索名称可能难以实现。(例如使用嵌套循环和使用选择案例查找正确的复选框)我正在研究如何基于迭代简化代码:(跨度>
-
有多复杂? 你可以以任何格式创建任何你需要的名称。使用字符串集合进行迭代并不比控件集合难
-
@Plutonix 我在想控制 25-30 复选框。而且,我有 arraylist
以确保我需要选中或取消选中组框中的每个复选框。你能提供我可以研究的简单例子吗?我不确定如何使用“List(of String)”来选中或取消选中 groupbox 中的每个复选框。我知道我可以在组框中设置每个复选框的名称。但是,我真的不知道如何应用 List(of String) 来解决这个问题:( -
如果您现在有 2 位彼此(和控件)相关的信息 - 复选框的名称和状态。我会使用一个类来保存信息。你知道他们吗?
标签: vb.net forms checkbox groupbox