User interface 在AHK中追加列表框列表

User interface 在AHK中追加列表框列表,user-interface,listbox,autohotkey,User Interface,Listbox,Autohotkey,我有一个上面有“用户名”的文本文件: 我要做的是创建一个包含该文件中所有用户的列表框。我的第一个想法是: Gui, Add, Button, , Log in getUsers() Gui, Show getUsers() { loop { FileReadLine, line, info.txt, %A_Index% if ErrorLevel Break Gui, Add, ListBox, cBlue

我有一个上面有“用户名”的文本文件:

我要做的是创建一个包含该文件中所有用户的列表框。我的第一个想法是:

Gui, Add, Button, , Log in
getUsers()
Gui, Show

getUsers()
{
    loop
    {
        FileReadLine, line, info.txt, %A_Index%
        if ErrorLevel
            Break
        Gui, Add, ListBox, cBlue, %line%
    }
}
但不是得到这个:

我明白了:


这完全有道理,但我如何才能正确地做到这一点?我找不到任何类型的append选项。

您的代码看起来不错,但选项并不是每行添加一行。相反,您必须声明

以管道分隔的列表

(见附件)

因此,您的函数将连接一个字符串,然后将其添加到gui中一次:

getUsers()
{
    choices := "" ; if you leave this line out, it'll work too I guess, but you might get a warning if #warn was set so
    loop
    {
        FileReadLine, line, info.txt, %A_Index%
        if ErrorLevel
            Break
        choices .= line "|"
    }
    Gui, Add, ListBox, cBlue, %choices%
}

您的代码看起来不错,但选项并不是每行添加一行。相反,您必须声明

以管道分隔的列表

(见附件)

因此,您的函数将连接一个字符串,然后将其添加到gui中一次:

getUsers()
{
    choices := "" ; if you leave this line out, it'll work too I guess, but you might get a warning if #warn was set so
    loop
    {
        FileReadLine, line, info.txt, %A_Index%
        if ErrorLevel
            Break
        choices .= line "|"
    }
    Gui, Add, ListBox, cBlue, %choices%
}

我测试过,100%有效,但我有几个问题。这可能是一个简单的答案,但为什么不在%循环的最后一行加上“line”呢?另外,行和“|”之间不应该有一个“.”来连接它们吗?@Milk教授:是的,这个话题一开始很混乱。有两个相等的运算符,
=
:=
,它们的工作方式不同。请参阅@“在变量中存储值”
=
+=
等类似于冒号相等运算符
:=
,因此,这里不需要
%
s。关于第二个问题:是的,
在这里不会太错,但由于某些AHK版本,可以省略点。只是为了澄清:
选项。=行。“|”
将与
选项=%choices%%line%
100%相同好的,所以你可以把
放在所有东西之间,或者只是把它们放在一起,它的工作方式相同?我测试过,100%有效,但我有几个问题。这可能是一个简单的答案,但为什么不在%循环的最后一行加上“line”呢?另外,行和“|”之间不应该有一个“.”来连接它们吗?@Milk教授:是的,这个话题一开始很混乱。有两个相等的运算符,
=
:=
,它们的工作方式不同。请参阅@“在变量中存储值”
=
+=
等类似于冒号相等运算符
:=
,因此,这里不需要
%
s。关于第二个问题:是的,
在这里不会太错,但由于某些AHK版本,可以省略点。只是为了澄清:
选项。=行。“|”
将与
选项=%choices%%line%\124;
完全相同,因此您可以将
放在所有内容之间,或者将它们放在一起,然后以相同的方式工作?