您的位置:程序门 -> .net技术 -> vb.net



初学vb.net,遇mdi子窗体的问题,在线等


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


初学vb.net,遇mdi子窗体的问题,在线等[已结贴,结贴人:king659413]
发表于:2007-03-24 13:25:29 楼主
下面是代码

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

大侠们出手帮帮...谢谢
发表于:2007-03-24 13:45:131楼 得分:0
没有觉得有什么问题,这两个窗体没有什么区别啊,
另外
me.mdichildren(x)
就是form类型了,没有必要向下面再转换一下吧:

  dim   mdichildfrm   as   form   =   ctype(me.mdichildren(x),   form)
发表于:2007-03-24 13:51:212楼 得分:0
frmfinfo
frmsinfo
两个窗体不一样啊

mdichildfrm.activate()这个你意思改成
                                mdichildform.activate()

没有问题可为什么只能防止frmfinfo
不能防止frmsinfo
发表于:2007-03-24 14:00:343楼 得分:0
吐血

因为frmsinfo.windowstate   没设置成   formwindowstate.maximized

所以没用   现在设置下好了

晕,为什么会这样啊
发表于:2007-03-24 14:11:294楼 得分:20
是嘛,是因为这个???好像不会.
发表于:2007-03-24 14:31:065楼 得分:0
这分就送你啦


快速检索

最新资讯
热门点击