Программно скрыть / удалить вкладки в VB.NET
У меня есть 10 вкладок в моей форме. Основываясь на вводе в текстовом поле, я хочу программно удалить количество страниц вкладок, т. Е. Если для ввода в текстовом поле установлено значение 3, то должны быть видны только первые 3 вкладки, а вкладки с 4 по 10 должны быть удалены или не должны быть видны. Я пытался следовать без какого-либо успеха,
For i = 0 To 9
Form1.TabControl1.TabPages.Remove(Form4.TabControl1.TabPages((val(textbox1.text)) + i))
Next
(Никаких исключений или ошибок не генерируется для приведенных выше утверждений)
Что не так с этими утверждениями?
Благодарю.
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
Фактически, есть другой подход, который хорошо работает, чтобы компенсировать отсутствие свойства видимости.
На самой странице вкладки установите для родительского свойства значение Nothing, чтобы скрыть его. если вы хотите отобразить вкладку, установите tabpage.parent для элемента управления вкладкой.
Никогда не используйте ваш вход без фильтра. Поместите ввод Textbix1.Text в конструкцию integer.tryparse. Кроме того, активируйте опцию строго для лучшего качества кода.
Для вашей проблемы:
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
Это должно сделать нежелательные табуляторы невидимыми. Я не знаю, работает ли Tabpages (index), может быть, вы вместо этого используете getitems - у меня нет проекта Winforms под рукой, чтобы протестировать его. Дополнительная информация о TabControl: http://msdn.microsoft.com/de-de/library/system.windows.forms.tabcontrol.aspx