我有一个OwnerDrawFixed tabcontrol ..所以,当我尝试使用此代码从此tabcontrol中删除特定选项卡时:
For i As Integer = 0 To TabControl1.TabPages.Count - 1
TabControl1.TabPages.RemoveAt(i)
Next i
它显示了一个错误:
' 1'的参数值无效对于' index'
无效
我该怎么办才能修复它?
答案 0 :(得分:2)
无效的参数值'1'对'index'无效
实际错误是因为该索引可能没有TabPage
。由于您正在循环并删除TabPages
,因此在删除项目时需要在循环中Step
。这可以防止循环与索引脱离。
由于你要移除所有TabPages
,你可以调用Clear
方法,但请不要这样做。 clear方法将有效TabControl1.TabPages.Clear()
,但它会使物体自由地消耗掉记忆。而是正确删除对象。
While tabControl1.TabCount > 0
TabControl1.TabPages(0).Dispose()
End While
这将确保正确处理对象标记为删除(由垃圾收集器清理)。