autohotkey GUI将动态创建的按钮与编辑控件相关联

时间:2015-03-06 10:48:44

标签: autohotkey

我使用autohotkey创建GUI,用户可以动态添加元素。有一个加号按钮,允许您添加新的编辑控件。那些编辑控件应该在它们旁边有按钮,对它们包含的文本执行操作,例如拆分,替换等。我知道我可以通过哪个按钮触发标签(AKA点击处理程序),但我不知道如何知道编辑控件与之相关。

编辑控件和按钮位于GroupBox的同一部分下,我不知道这是否有帮助。如何确定按下哪个编辑控件的按钮?

提前致谢。

1 个答案:

答案 0 :(得分:0)

确定,

我使用数组得到了部分解决方案。不优雅但有效。

num:=1
editBtn := Object()
groupBtn := Object()
Gui,+Border
Gui,Add,GroupBox,x4 y-1 w140 h40 Section,controls
Gui,Add,Button,x8 y14 w20 h20 gaddColumn,+
Gui,Add,GroupBox,x4 y42 w140 h80 Section,Column1
Gui, Add, Edit, 20 vMyEdit xs+10 ys+20,
Gui,Show,x469 y131 w374 h485 AutoSize,
Return
addColumn:
    num +=1
    Gui,Add,GroupBox,x4 y+10 w140 h80 vGroup%num% Section,Column%num%
    Gui,Add,Button, w20 h20 xs+100 ys+10  gremCol vBtnCol%num%,-
    Gui, Add, Edit, 20 vMyEdit%num% xs+10 ys+30,
    editBtn["BtnCol" . num] := "MyEdit" . num
    groupBtn["BtnCol" . num] := "Group" . num
    gui, show, AutoSize

Return
GuiClose:
ExitApp
Return

remCol:
 ; MsgBox,,, % A_GuiControl colBtns[A_GuiControl]
 GuiControl, Hide, % A_GuiControl
 GuiControl, Hide, % editBtn[A_GuiControl]
 GuiControl, Hide, % groupBtn[A_GuiControl]
 gui, show, AutoSize
Return

问题是我只能使用hide来删除元素。这有一个丑陋的缺点:如果我删除一个元素,然后我再添加一个元素"保留"第一个空间。