Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net 将特定范围的文本框设置为不可见(vb)_Vb.net_Loops - Fatal编程技术网

Vb.net 将特定范围的文本框设置为不可见(vb)

Vb.net 将特定范围的文本框设置为不可见(vb),vb.net,loops,Vb.net,Loops,我对VB.net比较陌生,我想隐藏所有不在某个值中的文本框。我的文本框的ID为1-30(例如TextBox1、TextBox2等) 我的问题的一个例子是: 如果字符串的长度为7->从8-30隐藏文本框(仅保留7个文本框) 提前谢谢 for i=8 to 30 Dim c as string = "Textbox" & i.toString DirectCast(Me.Controls.Find(c, False)(0), TextBox).

我对VB.net比较陌生,我想隐藏所有不在某个值中的文本框。我的文本框的ID为1-30(例如TextBox1、TextBox2等)

我的问题的一个例子是:

如果字符串的长度为7->从8-30隐藏文本框(仅保留7个文本框)

提前谢谢

for i=8 to 30
            Dim c as string = "Textbox" & i.toString
            DirectCast(Me.Controls.Find(c, False)(0), TextBox).Enabled= False
Next
让我们在8和30之间循环,通过组合“textbox”和i创建一个包含控件名的字符串c。 在表单中的控件中查找名为c的控件,不要递归,然后选择第一个匹配项(0)。将该控件的属性设置为Enabled=false

让我们在8和30之间循环,通过组合“textbox”和i创建一个包含控件名的字符串c。 在表单中的控件中查找名为c的控件,不要递归,然后选择第一个匹配项(0)。将该控件的属性设置为Enabled=false。

您可以尝试此操作

它在
表单
上的所有控件(类型为
TextBox
)中循环。
替换控件名称中的文本“textbox”,并尝试将其余部分(文本框编号)解析为
整数。

如果可以将其解析为数字,则文本框的
Visible
-属性设置为
True
False
,具体取决于
num
变量的值和文本框编号

Sub SetTextboxVisibility(num As Integer)
    Dim tbNumber As Integer

    For Each tb As TextBox In Me.Controls.OfType(Of TextBox)()
        If Integer.TryParse(tb.Name.ToUpper.Replace("TEXTBOX", ""), tbNumber) Then
            tb.Visible = tbNumber <= num
        End If
    Next
End Sub
你可以试试这个

它在
表单
上的所有控件(类型为
TextBox
)中循环。
替换控件名称中的文本“textbox”,并尝试将其余部分(文本框编号)解析为
整数。

如果可以将其解析为数字,则文本框的
Visible
-属性设置为
True
False
,具体取决于
num
变量的值和文本框编号

Sub SetTextboxVisibility(num As Integer)
    Dim tbNumber As Integer

    For Each tb As TextBox In Me.Controls.OfType(Of TextBox)()
        If Integer.TryParse(tb.Name.ToUpper.Replace("TEXTBOX", ""), tbNumber) Then
            tb.Visible = tbNumber <= num
        End If
    Next
End Sub


将文本框添加到数组中。将文本框添加到数组中。没有回答我的问题:如何使元素不可见?非常抱歉,我让你失望了。那有形财产呢?我真的很抱歉我的评论听起来像是居高临下。由于我是VB新手,请您描述一下将.visible?放置在何处以代替.enabledDN不要回答我的问题:如何使元素不可见?很抱歉,我让您失望了。那有形财产呢?我真的很抱歉我的评论听起来像是居高临下。由于我是VB新手,请您描述一下将.visible?放在何处以代替.enableddon。我不喜欢它,并且没有对代码给出任何注释。也不能解决OP的问题。此子组件无法将文本框的可见性从8更改为30,但只能从1更改为7。向下投票。@AlessandroMandelli添加了注释(顺便说一句,不喜欢它
不是向下投票的原因),它使文本框1到7可见,并隐藏了8到30,就像OP想要的一样。向上投票,尽管方法仍然不正确。你解决了互补的问题,而不是问题本身。如果OP想要将可视性从5更改为15,那么sub不会提供解决方案。因为字符串的长度为7,这里只提到了一个将文本框从1隐藏到7的示例。因此,如果长度为12,则只有文本框1到12可见。至少我是这么理解的。所以我认为这确实解决了OP的问题,而不是互补的。我不喜欢它,也没有对代码的注释。也不能解决OP的问题。此子组件无法将文本框的可见性从8更改为30,但只能从1更改为7。向下投票。@AlessandroMandelli添加了注释(顺便说一句,不喜欢它
不是向下投票的原因),它使文本框1到7可见,并隐藏了8到30,就像OP想要的一样。向上投票,尽管方法仍然不正确。你解决了互补的问题,而不是问题本身。如果OP想要将可视性从5更改为15,那么sub不会提供解决方案。因为字符串的长度为7,这里只提到了一个将文本框从1隐藏到7的示例。因此,如果长度为12,则只有文本框1到12可见。至少我是这么理解的。所以这确实解决了OP的问题,而不是互补的。