我是autoit的新手,我想创建2个表单,然后点击第一个表单打开第二个表单。
以下是我在koda的表格:
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
$Act = GUICreate("Activités et Compétences", 615, 441, 196, 125)
$RetourAccueil=1
$ETAPE = 1
$Label1 = GUICtrlCreateLabel(" Activités && Compétences", 41, 12, 558, 85)
GUICtrlSetFont(-1, 36, 800, 0, "My Lucky Penny")
$PPE = GUICtrlCreateButton("PPE", 48, 168, 75, 25)
$TP = GUICtrlCreateButton("TP", 152, 168, 75, 25)
$TD = GUICtrlCreateButton("TD", 256, 168, 75, 25)
$STAGE1 = GUICtrlCreateButton("STAGE 1", 368, 168, 75, 25)
$STAGE2 = GUICtrlCreateButton("STAGE 2", 480, 168, 75, 25)
$Group1 = GUICtrlCreateGroup("Activités", 24, 136, 561, 81)
GUICtrlCreateGroup("", -99, -99, 1, 1)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
Func RetourAccueil()
EndFunc
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $PPE
if $ETAPE=1 THEN
GUICtrlSetData(-1, "|PPE2.1-Mission ADISPO|PPE -Installation PFSENSE|PPE-Cas Kaspersky|Autres")
EndIf
Case $TP
$TP = GUICtrlCreateButton("NewName", 480, 168, 75, 25)
Case $TD
$TD = GUICreate("Activités et Compétences", 615, 441, 196, 125)
WinActivate($TDPAGE)
Case $STAGE1
MsgBox(64,'information','ok')
Case $STAGE2
EndSwitch
WEnd
这是我运行它的结果:
点击按钮TD,我想打开第二个表格并关闭第一个表格,但我知道我是如何尝试的:
Case $TD
$TD = GUICreate("Activités et Compétences", 615, 441, 196, 125)
WinActivate($TDPAGE)
但它没有用......
答案 0 :(得分:1)
在KODA中生成表单代码时,它只为您当前选择的表单生成代码,因此您需要分别为第二个表单生成代码。
当前代码不起作用的原因是默认情况下新的GUI是不可见的,你需要在创建它们之后执行GUISetState(@SW_SHOW)
使它们可见(就像KODA生成的代码一样)对于第一种形式)。
如果要关闭第一个表单,请使用GUIDelete()
。如果您查看AutoIt的文档,您会发现所有GUI功能都接受一个可选参数来指定您要操作的GUI,如果您没有指定它,它将使用您创建(或操作)的最后一个窗口。如果您想要专门删除第一个GUI,您必须确保在创建第二个GUI之前删除它,或者明确指定要删除的GUI,即GUIDelete($Act)
。
最后,你似乎写了WinActivate($TDFORM)
的拼写错误。你的意思是写WinActivate($TD)
吗?无论如何,没有必要激活表单,因为新创建的GUI将自动激活。