フォームに 10 個のタブページがあります。テキストボックスへの入力に基づいて、プログラムでタブページの数を削除したい. 成功せずにフォローしようとしましたが、
For i = 0 To 9
Form1.TabControl1.TabPages.Remove(Form4.TabControl1.TabPages((val(textbox1.text)) + i))
Next
(上記のステートメントでは、例外やエラーは生成されません)
これらのステートメントの何が問題になっていますか?
フォームに 10 個のタブページがあります。テキストボックスへの入力に基づいて、プログラムでタブページの数を削除したい. 成功せずにフォローしようとしましたが、
For i = 0 To 9
Form1.TabControl1.TabPages.Remove(Form4.TabControl1.TabPages((val(textbox1.text)) + i))
Next
(上記のステートメントでは、例外やエラーは生成されません)
これらのステートメントの何が問題になっていますか?
これをチェックして。
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
入力をフィルタリングせずに使用しないでください。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
これにより、不要なタブコントロールが非表示になります。Tabpages(index) が機能するかどうかはわかりません。代わりに getitems を使用する必要があるかもしれません。テストするための Winforms プロジェクトが手元にありません。TabControl の詳細: http://msdn.microsoft.com/de-de/library/system.windows.forms.tabcontrol.aspx