首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > VB Dotnet >

初学VB.NET,遇MDI子窗体的有关问题

2012-01-10 
初学VB.NET,遇MDI子窗体的问题,在线等下面是代码MDIChildForm——需检测的窗体MDIChildFormName——检测窗体的

初学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确还是能开多个,等于没防止一样...

大侠们出手帮帮...谢谢


[解决办法]
是嘛,是因为这个???好像不会.

热点排行