在發佈的問題中:「檢查表單是否打開」以下答案張貼爲正確。但是,我想知道如何在打開表單之前檢查表單的特定實例是否已打開;例如,檢查是否再次打開同一記錄的編輯屏幕,或者添加新記錄的表單是否已經打開。檢查vb.net 2010中是否打開了特定的表單實例
以下是發佈的代碼作爲原始問題的正確答案。它可以被修改來做我需要的嗎?提前致謝。
If Application.OpenForms().OfType(Of Form2).Any Then
MessageBox.Show ("Opened")
Else
Dim f2 As New Form2
f2.Text = "form2"
f2.Show()
End If
一個特定的實例將是一個窗體,正在編輯表中的特定記錄。我還會跟蹤編輯的狀態(無論表單是否處於編輯模式)或者,如果此表單有一個子表單(編輯此記錄的子表的表單);父表單不能退出,直到孩子關閉。
我當前創建了一個打開窗體,它們的名稱,它們正在編輯的記錄以及編輯狀態的樹,並且它們的關閉在樹中更新。乍一看,答案2似乎可以處理這些情況,並且不需要在後臺執行此數據結構,只要採取行動就需要不斷更新。有可能使它更通用,以便從應用程序到應用程序很容易重用。
你是什麼意思的特定實例?你如何區分一個或另一個實例? –
在你承諾這樣做之前,一定要閱讀[這個問題](http://stackoverflow.com/questions/3751554/application-openforms-count-0-always)。只需將表單的實例存儲在List中,以便稍後您不需要幫助就可以找回它。 –
感謝你報告這個 – smh