-1
我有一个问题,我有点困惑,所以我打算简单:一个表格的实例
我有2种形式(form1和form2)。
Form1有一个tab控件,它在tabpage中显示form2。 Form2有一个button1,它自己关闭,因此tabpage。
我使用这个代码为Button1:
Dim f1 As New Form1()
f1.tabControl1.Controls.Remove(f1.tabControl1.Selectedtab)
使用上面的代码,我得到了一个例外,这样只是为了确保标签页有我在Button1的去除标签页前补充一点:
Console.Writeline(f1.tabControl1.TabCount)
使用情况显示为0,但使用默认实例说明1:
Console.Writeline(Form1.tabControl1.TabCount)
我想知道如果我做错事创建一个实例
PD:我知道我可以用这个:
Form1.tabControl1.Controls.Remove(Form1.tabControl1.Selectedtab)
但我需要用实例来工作
编辑:
我得到一个NullReferenceException当我使用:
Dim f1 As New Form1()
f1.tabControl1.Controls.Remove(f1.tabControl1.Selectedtab)
正如我所说的,它的工作原理,如果我使用deafult例如
编辑2:
这是我用来创建标签页的代码,这种方法是在Form1,我在Form1调用它在一个按钮的点击事件:
Dim tabpage1 as new Tabpage
Dim f2 as new Form2
tabpage1.Controls.Add(f2)
f2.show()
tabControl1.TabPages.Add(tabpage1)
我无法重现该异常。请将其添加到您的问题。如果你从你的f1实例中删除了SelectedTab,那么它预计它有一个小于默认实例的选项卡。 – MatSnow
是的,但我在删除tabpage之前做了Console.writeline,所以两者,即isntance和默认实例,都应该有一个tabpage .tabcount只显示1,默认实例 –
我无法再现它。我创建了一个空表单,添加了一个带有一个Tab的TabControl并创建了一个表单实例。它显示TabCount = 1,没有'NullReferenceException'。你的Form1-Class里面一定有东西是造成这种情况的。 – MatSnow