将一定范围的文本框设置为不可见(vb)

时间:2018-03-27 14:31:30

标签: vb.net loops

我对VB.net比较陌生,我想隐藏所有没有特定值的文本框。我的文本框' ID为1-30(例如TextBox1,TextBox2,...)。

我的问题的一个例子是:

如果字符串的长度是7 - >从8-30隐藏TextBoxes(只留下7个文本框)。

提前致谢

2 个答案:

答案 0 :(得分:2)

你可以试试这个。

它遍历TextBox上的所有控件(类型Form)。
替换文本"文本框"在控件名称中,并尝试将其余部分(文本框编号)解析为Integer
如果可以将其解析为数字,则文本框的Visible - 属性设置为TrueFalse,具体取决于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

显示前7个文本框

SetTextboxVisibility(7)

答案 1 :(得分:0)

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。