Удалите форму, открытую на вкладке MainForm - PullRequest
0 голосов
/ 19 апреля 2010

У меня есть MainForm, который имеет вкладку Control и несколько независимых форм. Я открываю каждого Индивидуального От на вкладке основной формы. Кнопка «Закрыть вкладку» на главной панели закрывает текущую вкладку, ее реализация приведена ниже.

Это закрывает текущую вкладку, но мне также нужно избавиться от 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 ]

1 голос
/ 19 апреля 2010

Да, вам нужно будет распоряжаться всеми элементами управления на вкладке. Форма не является особенной, это просто дочерний элемент управления, когда для свойства 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 () формы автоматически удалит все дочерние элементы управления, которые ему не нужны, дополнительная помощь не требуется.

0 голосов
/ 19 апреля 2010

Я бы предложил сохранить ссылку на формы в основной форме. Поэтому у меня будет frmPageSave, и когда я открою форму для вкладки PageSave, я сохраню ссылку в этой переменной, а затем в вашем методе CloseCurrentTab добавлю что-то вроде:

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