如何在AutoIT中单击鼠标将焦点设置到输入框

时间:2014-11-19 21:03:04

标签: click focus autoit

我正在尝试创建一个GUI,提示用户将3个字符串用作变量,以便稍后在脚本中使用。

我的问题是关于ControlFocus命令。

我有3个输入框。我可以使用“Tab”键循环浏览它们,没有任何问题。有没有办法将鼠标左键单击链接到ControlFocus命令,以便在单击任何一个输入框时设置焦点? 我希望用户只需单击它就可以选择自己选择的输入框,而不是使用Tab键滚动它们。

#include <GUIConstants.au3>

; GUI
GUICreate("Adam's Instance Bot", 200, 210)

; LABEL
$Label_1 = GUICtrlCreateLabel("Username", 30, 20, 100, 20)
$Label_2 = GUICtrlCreateLabel("Password", 30, 60, 100, 20)
$Label_3 = GUICtrlCreateLabel("Instance", 30, 100, 100, 20)

; Input
$Input_1 = GUICtrlCreateInput("", 80, 20, 90, 20)
$Input_2 = GUICtrlCreateInput("", 80, 60, 90, 20)
$Input_3 = GUICtrlCreateInput ("", 80, 100, 90, 20)

; BUTTON
$RUN_1 = GUICtrlCreateButton("Start bot", 20, 140, 160, 50)

; Run script with variables
GUISetState()
While 1
    $MSG = GUIGetMsg()
    Select
        Case $MSG = $GUI_EVENT_CLOSE
            Exit
         Case $MSG = $RUN_1
           $username = GUICtrlRead($Input_1)
           $password = GUICtrlRead($Input_2)
           $instance = GUICtrlRead($Input_3)
           MsgBox(0,"text blah", $password )
    EndSelect
WEnd

我是否走错路线试图使用ControlFocus命令?有没有更好的办法?这比我制作容易吗?任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:2)

您始终可以通过鼠标单击选择输入框,但是在它们之上创建标签,以便您单击标签而不是框。 只需将标签宽度更改为~50即可。

#include <GUIConstants.au3>

; GUI
GUICreate("Adam's Instance Bot", 200, 210)

; LABEL
$Label_1 = GUICtrlCreateLabel("Username", 30, 20, 50, 20)
$Label_2 = GUICtrlCreateLabel("Password", 30, 60, 50, 20)
$Label_3 = GUICtrlCreateLabel("Instance", 30, 100, 50, 20)

; Input
$Input_1 = GUICtrlCreateInput("", 80, 20, 90, 20)
$Input_2 = GUICtrlCreateInput("", 80, 60, 90, 20)
$Input_3 = GUICtrlCreateInput ("", 80, 100, 90, 20)

; BUTTON
$RUN_1 = GUICtrlCreateButton("Start bot", 20, 140, 160, 50)

; Run script with variables
GUISetState()
While 1
    $MSG = GUIGetMsg()
    Select
        Case $MSG = $GUI_EVENT_CLOSE
            Exit
         Case $MSG = $RUN_1
           $username = GUICtrlRead($Input_1)
           $password = GUICtrlRead($Input_2)
           $instance = GUICtrlRead($Input_3)
           MsgBox(0,"text blah", $password )
    EndSelect
WEnd