我对VB.net比较陌生,我想隐藏所有没有特定值的文本框。我的文本框' ID为1-30(例如TextBox1,TextBox2,...)。
我的问题的一个例子是:
如果字符串的长度是7 - >从8-30隐藏TextBoxes(只留下7个文本框)。
提前致谢
答案 0 :(得分:2)
你可以试试这个。
它遍历TextBox
上的所有控件(类型Form
)。
替换文本"文本框"在控件名称中,并尝试将其余部分(文本框编号)解析为Integer
。
如果可以将其解析为数字,则文本框的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
显示前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。