以编程方式隐藏/删除VB.NET中的tabpages

时间:2012-10-05 05:32:58

标签: vb.net tabcontrol tabpage

我的表单上有10个标签页。根据文本框中的输入,我想以编程方式删除标签页的数量,即如果文本框输入为3,则只能显示前3个标签页,并且必须删除或不应显示标签页4到10。 我试过没有任何成功,

For i = 0 To 9
Form1.TabControl1.TabPages.Remove(Form4.TabControl1.TabPages((val(textbox1.text)) + i))
Next

(上述陈述没有例外或错误)

这些陈述有什么问题?

感谢。

3 个答案:

答案 0 :(得分:3)

检查一下。

    For i As Integer = TextBox1.Text + 1 To 9

        Form1.TabControl1.TabPages.Remove(Form4.TabControl1.TabPages(TextBox1.Text + 1))

    Next

    For index As Integer = 9 To TextBox1.Text + 1 Step -1

        Me.TabControl1.TabPages.Remove(Me.TabControl1.TabPages(index))
    Next

答案 1 :(得分:2)

切勿使用未经过滤的输入。 将Textbix1.Text输入放在integer.tryparse构造中。 此外,激活Option strict以获得更好的代码质量。

对于你的问题:

Dim MaxVisible as Integer
Dim Sucess as Boolean
Sucess=Integer.Tryparse(textbox1.text, MaxVisible)
If Sucess=True

For index As Integer = 9 To MaxVisible  + 1 Step -1
 Me.TabControl1.TabPages(Index).visible=false
End If

这应该使不需要的tabcontrols不可见。 我不知道Tabpages(索引)是否有效,也许你必须使用getitems - 我手头没有Winforms项目来测试它。 有关TabControl的更多信息:http://msdn.microsoft.com/de-de/library/system.windows.forms.tabcontrol.aspx

答案 2 :(得分:0)

实际上,还有另一种方法可以很好地弥补缺乏可见性的情况。

在选项卡页面本身上,将父属性设置为“无”以将其隐藏。 要显示标签页时,请将tabpage.parent设置为标签控件。