从tabcontrol中删除选项卡时会引发错误

时间:2016-06-23 16:09:28

标签: vb.net tabcontrol

我有一个OwnerDrawFixed tabcontrol ..所以,当我尝试使用此代码从此tabcontrol中删除特定选项卡时:

For i As Integer = 0 To TabControl1.TabPages.Count - 1
TabControl1.TabPages.RemoveAt(i)
Next i
它显示了一个错误:

  

' 1'的参数值无效对于' index'

无效

我该怎么办才能修复它?

1 个答案:

答案 0 :(得分:2)

  

无效的参数值'1'对'index'无效

实际错误是因为该索引可能没有TabPage。由于您正在循环并删除TabPages,因此在删除项目时需要在循环中Step。这可以防止循环与索引脱离。

由于你要移除所有TabPages,你可以调用Clear方法,但请不要这样做。 clear方法将有效TabControl1.TabPages.Clear(),但它会使物体自由地消耗掉记忆。而是正确删除对象。

     While tabControl1.TabCount > 0
        TabControl1.TabPages(0).Dispose()
     End While

这将确保正确处理对象标记为删除(由垃圾收集器清理)。