2010-04-19 65 views
0

我有一個擁有選項卡Control和多個獨立窗體的MainForm。我在主窗體的選項卡中打開每個個人。 MainFrom上的「Close Tab」按鈕關閉當前選項卡,其實現如下。在MainForm選項卡中打開Dispose窗體

這將關閉當前標籤,但我還需要是處置從它的標籤是封閉的,但我不知道如何獲取表單的實例。」

任何幫助表示感謝提前。

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

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

末次

回答

0

我建議保持在主窗體形式的參考。所以我有一個frmPageSave,當我打開窗體爲PageSave標籤我保存在該變量的引用,然後在你的CloseCurrentTab方法我會添加類似:

IF frmPageSave IsNot Nothing Then 
    frmPageSave.Close() 
    frmPageSave = Nothing 
End If 
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()方法將自動處置它的任何子控件,不需要額外的幫助。

相關問題