(已解决)如果一个程序中建了两个form,如何才能在只关闭一个?
本帖最后由 papapa314 于 2011-1-25 01:37 编辑如果一个程序中建了两个form,关闭其中一个的话另外一个就会被关闭,有没有办法能在关闭一个form的同时不关闭另外一个? 用OnEvent模式。或者使用GUIGetMsg的高级选项,判断消息发生在哪个Form中。 如果是AU3的话 可以用 GUIDelete 回复 2# pusofalse
请问能不能举个例子呢?谢谢你的帮忙! 本帖最后由 papapa314 于 2011-1-24 21:37 编辑
回复 2# pusofalse
While 1
$nMsg = GUIGetMsg()
Select
Case $nMsg=$Form1_1 And $nMsg=$GUI_EVENT_CLOSE
Exit
EndSelect
WEnd
用这样的好像不行,会直接退出!! 本帖最后由 pusofalse 于 2011-1-24 23:26 编辑
回复 5# papapa314
你用了Exit语句,当然会退出。需要关闭的只是窗口,并不是整个进程。当年也犯过如此的错误,愣是没转过弯来。改成GUIDelete($Form1_1)或者GUISetState(@SW_HIDE, $Form1_1)就行了。
另外,Case $nMsg=$Form1_1 And $nMsg=$GUI_EVENT_CLOSE 应该改成Case $nMsg = $GUI_EVENT_CLOSE And $nMsg = $Form1_1。 回复 6# pusofalse
谢谢你的帮助!!! 本帖最后由 papapa314 于 2011-1-25 01:37 编辑
回复 6# pusofalse
刚问了以下的问题,不过现在自己已经尝试解决了,把form3的信息写在koda的编辑区域里面,然后设置为hide, 当Case $nMsg=$MenuItem4 And $nMsg=$Form1,就把form3设置为show,这样操作就不会出错了,希望对大家都有帮助!
现在又遇到一个新问题了,如果我点击form1的一个菜单,弹出一个form2,然后再对这个form2进行操作,写了这样的代码,老是出错。用了GUISetState(@SW_HIDE, $Form3),可能第二次想再把Form3给调出来就不行了。
希望斑竹能够给点提示!
While 1
$nMsg = GUIGetMsg(1)
Select
Case $nMsg=$GUI_EVENT_CLOSE And $nMsg=$Form1
Exit
Case $nMsg=$MenuItem4 And $nMsg=$Form1
$Form3 = GUICreate("", 335, 149, 228, 163)
$Button31 = GUICtrlCreateButton("点击", 116, 112, 97, 33)
GUISetState(@SW_SHOW)
While 1
$msg3 = GUIGetMsg(1)
Select
Case $msg3=$GUI_EVENT_CLOSE And $nMsg3=$Form3
GUISetState(@SW_HIDE, $Form3)
Case $msg3=$Button31 And $nMsg3=$Form3
MsgBox(0,"","点到按钮了")
EndSelect
WEnd
EndSelect
WEnd 不错,我也有遇过同样的问题,第二个GUI在开第二次时就开不了了..... 谢谢大家学习了
页:
[1]