加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

vb.net – 控制数组发生了什么

发布时间:2020-12-17 07:16:21 所属栏目:百科 来源:网络整理
导读:几年前我曾经用Visual Basic 6编程,我能够创建具有相同名称的对象,然后通过索引区分它们. 例如,我们可以创建TextBox1和另一个TextBox1但具有不同的索引. 现在这个功能已不再可用! 目前,我正在使用Visual Studio 2012. 无论如何操纵VS2012再次启用该功能,或
几年前我曾经用Visual Basic 6编程,我能够创建具有相同名称的对象,然后通过索引区分它们.
例如,我们可以创建TextBox1和另一个TextBox1但具有不同的索引.
现在这个功能已不再可用!
目前,我正在使用Visual Studio 2012.
无论如何操纵VS2012再次启用该功能,或者是否有类似的功能,因为它真的很有帮助.

解决方法

今天完成类似事情的更简单方法是将所有这些控件放在一个公共父控件中.此父级可以是组框,面板,甚至是表单本身.

因此,如果您的表单上的所有复选框都需要编制索引,毫无例外,您不必执行任何特殊操作.如果只有一个复选框不同,则您需要该复选框以具有与索引复选框不同的父控件.在这种情况下,您可以在复选框组下面对面板控件进行分层,或者您可以在不同的单个复选框下对面板控件进行分层.要么工作.

稍后,您仍然无法通过索引访问这些复选框,但您可以将它们视为集合.这是你如何做到这一点:

For Each box As CheckBox In Me.Controls.OfType(Of Checkbox)()
    'Do something with each checkbox
Next

或者,如果您想知道检查了哪些:

Dim checkedBoxes As IEnumerable(Of Checkbox) = Me.Controls.OfType(Of Checkbox)().Where(Function(b) b.Checked)

如果你真的想要一个复选框的数组,你可以使用这种技术来获得一个.只需将这样的代码放在表单的load事件中:

Dim checkBoxes() CheckBox = Me.Controls.OfType(Of CheckBox)().OrderBy(Function(b) b.Name).ToArray()

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读