找回密码
 加入
搜索
查看: 2821|回复: 9

[AU3基础] (已解决)如果一个程序中建了两个form,如何才能在只关闭一个?

  [复制链接]
发表于 2011-1-24 19:04:25 | 显示全部楼层 |阅读模式
本帖最后由 papapa314 于 2011-1-25 01:37 编辑

如果一个程序中建了两个form,关闭其中一个的话另外一个就会被关闭,有没有办法能在关闭一个form的同时不关闭另外一个?
发表于 2011-1-24 19:23:08 | 显示全部楼层
用OnEvent模式。或者使用GUIGetMsg的高级选项,判断消息发生在哪个Form中。
发表于 2011-1-24 19:46:59 | 显示全部楼层
如果是AU3的话 可以用 GUIDelete
 楼主| 发表于 2011-1-24 20:42:35 | 显示全部楼层
回复 2# pusofalse

请问能不能举个例子呢?谢谢你的帮忙!
 楼主| 发表于 2011-1-24 20:52:15 | 显示全部楼层
本帖最后由 papapa314 于 2011-1-24 21:37 编辑

回复 2# pusofalse

While 1
        $nMsg = GUIGetMsg()
        Select
                Case $nMsg[1]=$Form1_1 And $nMsg[0]=$GUI_EVENT_CLOSE

                                                  
                        Exit

        EndSelect
WEnd


用这样的好像不行,会直接退出!!
发表于 2011-1-24 23:24:45 | 显示全部楼层
本帖最后由 pusofalse 于 2011-1-24 23:26 编辑

回复 5# papapa314


   你用了Exit语句,当然会退出。需要关闭的只是窗口,并不是整个进程。当年也犯过如此的错误,愣是没转过弯来。改成GUIDelete($Form1_1)或者GUISetState(@SW_HIDE, $Form1_1)就行了。
另外,Case $nMsg[1]=$Form1_1 And $nMsg[0]=$GUI_EVENT_CLOSE 应该改成Case $nMsg[0] = $GUI_EVENT_CLOSE And $nMsg[1] = $Form1_1。

评分

参与人数 1金钱 +10 收起 理由
papapa314 + 10 谢谢!

查看全部评分

 楼主| 发表于 2011-1-25 00:13:38 | 显示全部楼层
回复 6# pusofalse


    谢谢你的帮助!!!
 楼主| 发表于 2011-1-25 01:16:39 | 显示全部楼层
本帖最后由 papapa314 于 2011-1-25 01:37 编辑

回复 6# pusofalse
刚问了以下的问题,不过现在自己已经尝试解决了,把form3的信息写在koda的编辑区域里面,然后设置为hide, 当Case $nMsg[0]=$MenuItem4 And $nMsg[1]=$Form1,就把form3设置为show,这样操作就不会出错了,希望对大家都有帮助!




现在又遇到一个新问题了,如果我点击form1的一个菜单,弹出一个form2,然后再对这个form2进行操作,写了这样的代码,老是出错。用了GUISetState(@SW_HIDE, $Form3),可能第二次想再把Form3给调出来就不行了。
希望斑竹能够给点提示!
    While 1
        $nMsg = GUIGetMsg(1)
        Select
        Case $nMsg[0]=$GUI_EVENT_CLOSE And $nMsg[1]=$Form1                       
                Exit
                Case $nMsg[0]=$MenuItem4 And $nMsg[1]=$Form1
        $Form3 = GUICreate("", 335, 149, 228, 163)
        $Button31 = GUICtrlCreateButton("点击", 116, 112, 97, 33)
        GUISetState(@SW_SHOW)
        While 1
              
                $msg3 = GUIGetMsg(1)

                Select
                       Case $msg3[0]=$GUI_EVENT_CLOSE And $nMsg3[1]=$Form3
               GUISetState(@SW_HIDE, $Form3)

                       Case $msg3[0]=$Button31 And $nMsg3[1]=$Form3
                       MsgBox(0,"","点到按钮了")
          EndSelect

      WEnd
               

EndSelect
WEnd
发表于 2011-1-25 08:16:55 | 显示全部楼层
不错,我也有遇过同样的问题,第二个GUI在开第二次时就开不了了.....
发表于 2011-9-2 15:08:34 | 显示全部楼层
谢谢大家  学习了
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-10-1 17:37 , Processed in 0.099305 second(s), 20 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表