在发布的问题中:“检查表单是否打开”以下答案张贴为正确。但是,我想知道如何在打开表单之前检查表单的特定实例是否已打开;例如,检查是否再次打开同一记录的编辑屏幕,或者添加新记录的表单是否已经打开。检查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