在MainForm选项卡中打开的Dispose Form

时间:2010-04-19 16:49:32

标签: vb.net controls dispose tabs

我有一个MainForm,它有tab控件和几个独立的表单。我在主窗体的选项卡中打开每个Individual From。 MainFrom上的“关闭选项卡”按钮关闭当前选项卡,其实现位于下方。

这会关闭当前标签,但我还需要处理其标签已关闭的From,但我不知道如何获取表单的实例。'

任何帮助表示感谢,提前致谢。

'Close the current tab
  Private Sub CloseCurrentTab()
    'Close the current tab 

      Dim tabPageSave As TabPage
      tabPageSave = tcDisplayDetails.SelectedTab
      tcDisplayDetails.TabPages.Remove(tabPageSave)

End Sub

2 个答案:

答案 0 :(得分:1)

是的,您需要在标签页中配置所有控件。表单不是特殊的,当您将其TopLevel属性设置为false时,它只是一个子控件。看起来像这样:

  Dim tabPageSave As TabPage
  tabPageSave = tcDisplayDetails.SelectedTab
  While tabPageSave.Controls.Count > 0
      tabPageSave.Controls(0).Dispose()
  End While
  tcDisplayDetails.TabPages.Remove(tabPageSave)

表单的Dispose()方法将自动处理它拥有的任何子控件,不需要额外的帮助。

答案 1 :(得分:0)

我建议在主窗体中保留对表单的引用。所以我有一个frmPageSave,当我打开PageSave选项卡的表单时,我将引用存储在该变量中,然后在CloseCurrentTab方法中我添加了类似的内容:

IF frmPageSave IsNot Nothing Then
    frmPageSave.Close()
    frmPageSave = Nothing
End If