我在listview
控件上有多个tab2
控件时遇到问题。
在我的gui中,我有一个tab2
控件,其中三个选项卡各有一个listview控件。
我的问题是,当我使用LV_GetText()
时,我无法找到区分哪个listview
来获取的方法。
要解决问题,LV_Add()
无法区分列表视图。
通常,您只需要使用mygui:default
来区分gui窗口,但listview
控件似乎没有此选项。
我该怎么做?
答案 0 :(得分:1)
实际上,有一种方法可以指定哪个列表视图。 It actually mentions this in the docs, too.
基本上,您所做的是更改默认列表视图。您无法将您的功能直接指向特定列表视图,但如果更改默认列表视图,则可以对其进行操作。更改后,所有后续命令都将以新的默认值运行。
你改变它:
Gui, ListView, ListViewName
或者像这样,如果你需要区分gui windows:
Gui, 3:ListView, ListViewName
这是一个示例。将其粘贴到脚本文件中并运行它以查看它是否有效。
#SingleInstance,force
gosub, SHOWGUI
return
SHOWGUI:
gui, mainui:new, hwndmainui, ListViews On Tab2
gui, add, tab2, vtabs, one|two|three|four
gui, tab, one
gui,add, listview, r5 vlistview1 gListView1Events +altsubmit -multi, col1|col2
LV_Add("", "bob", "harry")
LV_Add("", "first", "listview")
gui, tab, two
gui,add, listview, r5 vlistview2 gListView2Events +altsubmit -multi, col1|col2
LV_Add("", "george", "harvey")
LV_Add("", "second", "listview")
gui, tab, three
gui,add, listview, r5 vlistview3 gListView3Events +altsubmit -multi, col1|col2
LV_Add("", "michael", "richard")
LV_Add("", "third", "listview")
gui, tab, four
gui,add, listview, r5 vlistview4 gListView4Events +altsubmit -multi, col1|col2
LV_Add("", "harold", "marcel")
LV_Add("", "fourth", "listview")
gui, show
RETURN
REPORT:
LV_GetText(firstcol, A_EventInfo, 1)
LV_GetText(secondcol, A_EventInfo, 2)
msgbox, %firstcol% : %secondcol%
RETURN
ListView1Events:
gui, mainui:listview, listview1
if(A_GuiEvent == "Normal"){
gosub, REPORT
}
RETURN
ListView2Events:
gui, mainui:listview, listview2
if(A_GuiEvent == "Normal"){
gosub, REPORT
}
RETURN
ListView3Events:
gui, mainui:listview, listview3
if(A_GuiEvent == "Normal"){
gosub, REPORT
}
RETURN
ListView4Events:
gui, mainui:listview, listview4
if(A_GuiEvent == "Normal"){
gosub, REPORT
}
RETURN
实际上,there is a better, not-so-clumsy way, thanks go garry可以处理多个列表视图。
在这种方法中,诀窍是使用相同的名称和序号命名列表视图:listview1, listview2, listview3...
这样,事件处理程序可以有一个gLabel:gui, mainui:listview, listview%Tabnumber%
;-------- http://ahkscript.org/boards/viewtopic.php?f=5&t=3656 ---
MODIFIED=20140531
Tabnumber:=1
gui, mainui:new, hwndmainui, ListViews On Tab2
gui,add, Tab2, gtabchange vTabnumber AltSubmit, one|two|three|four
gui,tab, one
gui,add, listview, r5 vlistview1 gListViewEvents +altsubmit -multi, col1|col2
LV_Add("", "bob", "harry")
LV_Add("", "first", "111111111")
gosub,width1
gui,tab, two
gui,add, listview, r5 vlistview2 gListViewEvents +altsubmit -multi, col1|col2
LV_Add("", "george", "harvey")
LV_Add("", "second", "222222")
gosub,width1
gui, tab, three
gui,add, listview, r5 vlistview3 gListViewEvents +altsubmit -multi, col1|col2
LV_Add("", "michael", "richard")
LV_Add("", "third", "33333333")
gosub,width1
gui, tab, four
gui,add, listview, r5 vlistview4 gListViewEvents +altsubmit -multi, col1|col2
LV_Add("", "harold", "marcel")
LV_Add("", "fourth", "44444")
gosub,width1
gui, show
gosub,tabchange
RETURN
mainuiGuiclose:
exitapp
width1:
T1=70
T2=140
LV_ModifyCol(1,T1)
LV_ModifyCol(2,T2)
LV_ModifyCol(2,"Integer")
return
;-------------------------------------------------------------------------------------
tabchange:
GuiControlGet, Tabnumber
Return
;-------------------------------------------------------------------------------------
ListViewEvents:
gui, mainui:listview, listview%Tabnumber%
if(A_GuiEvent == "Normal"){
LV_GetText(firstcol, A_EventInfo, 1)
LV_GetText(secondcol, A_EventInfo, 2)
msgbox, %firstcol% : %secondcol%
}
RETURN