我先把主題問題解決再來交流... 一百五十几个,那用组或用Tab标签都不合适了,装不下或不好看。
建议采用Combo下拉选择。 嗯! 如果不用 Combo 還有別的好方法嗎?
因為最後的時候, GUI 上 Group 會在做出一個顯示連線成功、失敗的 GUI
想不出別的辦法 囧! 回复 18# We!
我认为 Combo 是最理想的。155个项目……
选择某个项目,整个Gui都可以给它用,你还担心什么?
我写了个例子,一会给你 這個 GUI 會按照上到下一直 RUN 下去的,
Group 裡或許還會加上一些 Checkbox 、CreateIcon、Button 等等 . . .
主要是由文件產生 GUI 這個地方就卡住了! 後面還有很多的想法沒辦法實現 :( 不知道你的具体应用,不过以下代码可以拓展更多的需求
;If Not FileExists('config.ini') Then
For $i = 1 To 155
IniWrite('config.ini', 'tip' & $i, 'name', '可点击的Label' & $i)
IniWrite('config.ini', 'tip' & $i, 'ip', '127.0.0.' & $i)
Next
Msgbox(0, 0, 'config.ini 创建完毕~ ')
EndIf
;--------------以上会生成测试用的ini文件,以下脚本正式开始。
#include <ComboConstants.au3>
$ini = 'config.ini'
GUICreate('根据ini生成控件例子', 260, 120)
GUICtrlCreateLabel('请下拉选择项目:', 20, 24, 100, 17)
$Combo = GUICtrlCreateCombo("", 120, 20, 120, 20, BitOr($GUI_SS_DEFAULT_COMBO,0x0800,0x0003))
$Label = GUICtrlCreateLabel('', 20, 50, 120, 17)
GUICtrlSetColor(-1, 0x06366c)
GUICtrlSetFont(-1, 9, 800, 0)
GUICtrlSetCursor(-1, 0)
GUISetState()
$iniRSN = IniReadSectionNames($ini)
Dim $tmp, $ip = '还未选择'
For $i = 1 To $iniRSN - 1
$tmp &= $iniRSN[$i] & '|'
Next
$tmp &= $iniRSN[$i]
GUICtrlSetData($Combo, $tmp)
GUIRegisterMsg(0x0111, "WM_COMMAND")
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case -3
Exit
Case $Label
MsgBox(0, 0, $ip)
EndSwitch
WEnd
Func WM_COMMAND($hWnd, $Msg, $wParam, $lParam)
Local $IdFrom, $iCode, $zdm, $name
$IdFrom = BitAND($wParam, 0x0000FFFF)
$iCode = BitShift($wParam, 16)
If $iCode = 1 Then
If $IdFrom = $Combo Then
$zdm = GUICtrlRead($Combo)
$name = IniRead($ini, $zdm, 'name', '')
GUICtrlSetData($Label, $name)
$ip = IniRead($ini, $zdm, 'ip', '')
EndIf
EndIf
EndFunc ;==>WM_COMMAND 萬分感謝!
我晚點再測試看看,目前還在上班中 囧! 抱歉! 這麼久才上來測試、結貼,最近小弟有點忙碌...
近期要先寫別的,沒時間完善!
過些日子有寫一個大概,會在放上來請大家指教一下 :)
經測試 afan #21 是可行的,謝謝您的幫忙!!
页:
1
[2]