初学VB.NET,遇MDI子窗体的问题,在线等
下面是代码
'MDIChildForm——需检测的窗体
'MDIChildFormName ——检测窗体的名字
Private Sub CheckForm(ByVal MDIChildForm As Form, ByVal MDIChildFormName As String)
If Me.MdiChildren.Length < 1 Then
'如果没有任何一个MDI子窗体,则创该MDI子窗体的窗体实例
MDIChildForm.MdiParent = Me
MDIChildForm.Show()
Exit Sub
Else
Dim x As Integer
Dim frmyn As Boolean
For x = 0 To Me.MdiChildren.Length - 1
Dim tempChild As Form = CType(Me.MdiChildren(x), Form)
If tempChild.Name = MDIChildFormName Then
frmyn = True
'检测到有该MDI子窗体,设为TRUE 并退出循环
Exit For
Else
frmyn = False
End If
Next
If frmyn = False Then
'在打开的窗体中没检测到则新建
MDIChildForm.MdiParent = Me
MDIChildForm.Show()
Else
'在打开的窗体中检测到则激活
Dim MDIChildFrm As Form = CType(Me.MdiChildren(x), Form)
MDIChildFrm.Activate()
End If
End If
End Sub
Private Sub MIFinfo_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MIFinfo.Click
Dim frm As New FrmFinfo()
CheckForm(frm, "FrmFinfo ")
End Sub
Private Sub MISinfo_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MISinfo.Click
Dim frm As New FrmSinfo()
CheckForm(frm, "FrmSinfo ")
End Sub
造成的结果是...
只能防止FrmFinfo这个窗体的多开,也能检测也能激活,不会多开
而FrmSinfo确还是能开多个,等于没防止一样...
大侠们出手帮帮...谢谢
[解决办法]
是嘛,是因为这个???好像不会.