2012-10-05 87 views
1

我的表單上有10個標籤頁。根據文本框中的輸入,我想以編程方式刪除多個標籤頁,即如果文本框輸入是3,那麼只有前3個標籤頁應該可見,並且標籤頁4到10必須被刪除或不應該可見。 我試過下面沒有任何成功,以編程方式隱藏/刪除VB.NET中的標籤頁

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

(無異常或錯誤的上述語句生成)

有什麼不對這些說法?

謝謝。

+0

檢查這一點 - http://stackoverflow.com/questions/3365025/hiding-and-showing-tabpages-in-tabcontrol –

+0

Tab頁沒有一個明顯的特性,可見屬性屬於到標籤控件不是頁面,所以最後的回答是錯誤的。看來,刪除是您可以隱藏標籤頁的唯一方法。 – 2013-04-23 03:49:06

回答

2

檢查此。

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 
+0

切勿使用未經過濾的輸入。 –

+0

是的。你的回答非常好。 – MMALSELEK

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

相關問題