在AHK中使用dropdownlist和gui文本框的条件行为

问题描述:

假设我选择“Option1”和“Color1”。然后我写了一些东西进入*文本区域。现在当我按OK时,它将执行条件标签。由于Option1/color1被选中,它将执行sendinput命令:在AHK中使用dropdownlist和gui文本框的条件行为

blablala%text1%blabla%text2%。

如果我挑不过“选项1”和“色”会做一个sendinput与

布拉布拉与他的妻子和她的妻子的text1然后狗做文本2。

我已经管理了这段代码的一部分。我的问题是,当我从选择列表中选择时,无论我写什么,它都会执行脚本。我希望它在单击OK并显示text1/text2时执行,无论我想要放置它。

#NoEnv 
Gui, 1: font, s10 , Verdana 
Gui, 1: Add, DropDownList, gDropDownList vDropDownList1 R2 choose1, Option1|Option2 
Gui, 1: Add, DropDownList, gDropDownList vDropDownList2 R2 choose1, Color1|Color2 
Gui, 1:Add, text,, Text1 
Gui, 1:Add, edit, vText1 
Gui, 1:Add, text,, Text2 
Gui, 1:Add, edit, vText2 
Return 

DropDownList: 
Gui, 1:Submit,NoHide 
if (dropdownlist1 = "Option1") && (dropdownlist2 = "Color1") 
{ 
    MsgBox, A flower said to a be: %text1%. The bee replied %text2% 
    Gui 1: hide 
} 
else if (dropdownlist1 = "Option1") && (dropdownlist2 = "Color2") 
{  
    MsgBox, You picked %text1% and %text2% 
    Gui 1: hide 
} 
else if (dropdownlist1 = "Option2") && (dropdownlist2 = "Color1") 
{  
    MsgBox, A girl said %text1% when you picked %text2% 
    Gui 1: hide 
} 
else if (dropdownlist1 = "Option2") && (dropdownlist2 = "Color2") 
{  
    MsgBox, Blabla %text1% blabla %text2% 
    Gui 1: hide 
} 
return 

#j:: 
Gui 1: show,, DropDownGui 
return 

我管理这个代码的TODO部分。我的问题是,当我从下拉列表中选择 时,无论我写什么,它都会执行脚本。

这是因为你有一个gosub连接到你的下拉列表。这就是gDropDownList中的g。当你从中选择一些东西时,它会运行DropDownList标签。

您可以从选项字段中完全删除gDropDownList,也可以制作一个标签,通过制作gui提交标签在点击后保存您的选择。

尝试这样:

#NoEnv 
Gui, 1:font, s10 , Verdana 
Gui, 1:Add, DropDownList, gGuiSave vDropDownList1 R2 choose1, Option1|Option2 
Gui, 1:Add, DropDownList, gGuiSave vDropDownList2 R2 choose1, Color1|Color2 
Gui, 1:Add, text,, Text1 
Gui, 1:Add, edit, vText1 
Gui, 1:Add, text,, Text2 
Gui, 1:Add, edit, vText2 
Return 

GuiSave: 
    Gui, 1:Submit,NoHide 
return 

DropDownList: 
Gui, 1:Submit,NoHide 
if (dropdownlist1 = "Option1") && (dropdownlist2 = "Color1") 
{ 
    MsgBox, A flower said to a be: %text1%. The bee replied %text2% 
    Gui 1: hide 
} 
else if (dropdownlist1 = "Option1") && (dropdownlist2 = "Color2") 
{  
    MsgBox, You picked %text1% and %text2% 
    Gui 1: hide 
} 
else if (dropdownlist1 = "Option2") && (dropdownlist2 = "Color1") 
{  
    MsgBox, A girl said %text1% when you picked %text2% 
    Gui 1: hide 
} 
else if (dropdownlist1 = "Option2") && (dropdownlist2 = "Color2") 
{  
    MsgBox, Blabla %text1% blabla %text2% 
    Gui 1: hide 
} 
return 

#j:: 
Gui 1: show,, DropDownGui 
return