找回密码  加入

AUTOIT CN

搜索
查看: 129|回复: 5

[GUI管理] 如何让comb输入框下拉菜单读取ini里面的内容?

[复制链接]
发表于 2019-1-8 17:19:45 | 显示全部楼层 |阅读模式
举个简单例子,自己写个ini文件,里面内如如下:
xiaoming
zhangsan
liudehua
zhangweijian
caochong

如何让ini里面的这些内容显示在combo下拉菜单呢??

#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("", 615, 438)
$Combo1 = GUICtrlCreateCombo("请下拉选择", 200, 168, 121, 21)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
While 1
        $nMsg = GUIGetMsg()
        Switch $nMsg
                Case $GUI_EVENT_CLOSE
                        Exit
        EndSwitch
WEnd


发表于 2019-1-8 19:08:57 | 显示全部楼层
帮助文档搜索“GUICtrlCreateCombo”
 楼主| 发表于 2019-1-9 09:05:00 | 显示全部楼层
ini文件里的名字可能会继续增加很多,GUICtrlCreateCombo的例子不是读取ini的
发表于 2019-1-9 09:33:03 | 显示全部楼层
本帖最后由 chzj589 于 2019-1-9 14:37 编辑
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <Array.au3>
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("读ini文件显示Combo1", 615, 438)
$Combo1 = GUICtrlCreateCombo("请下拉选择", 200, 168, 121, 21)

GUISetState(@SW_SHOW)
Local Const $sFilePath = @ScriptDir & "\2.ini";文件名
Local $aArray = IniReadSection($sFilePath, "Infomation");字段名
Local $sComboTxt ;= "Infomation"
Local $cbDatab
; 检查是否发生错误.
If Not @error Then
        ; 枚举显示数组中关键字及其各自的值.
        For $i = 1 To $aArray[0][0]
                $totalini = $aArray[$i][1]
                If Not StringInStr($sComboTxt, $totalini) Then $sComboTxt &= "|" & $totalini
        Next
EndIf
;_ArrayDisplay($aArray, $aArray)
GUICtrlSetData($Combo1, "")
GUICtrlSetData($Combo1, $sComboTxt, "")
ControlCommand("读ini文件显示Combo1", "", 'ComboBox1', "SetCurrentSelection", 0)
#EndRegion ### END Koda GUI section ###
While 1
        $nMsg = GUIGetMsg()
        Switch $nMsg
                Case $GUI_EVENT_CLOSE
                        Exit
        EndSwitch
WEnd
2.ini
[Infomation]
1=xiaoming
2=zhangsan
3=liudehua
4=zhangweijian
5=caochong


发表于 2019-1-9 12:10:41 | 显示全部楼层
发表于 6 天前 | 显示全部楼层
本帖最后由 aryce 于 2019-1-13 20:36 编辑

你这个是txt文件把,直接逐行读出来 ,每个值中间加个“|” 然后赋值给Combo就可以了
xiaoming
zhangsan
liudehua
zhangweijian
caochong
=============>
"xiaoming|zhangsan| ...... |caochong"

实现起来不难
  1. $Comb1 = GUICtrlCreateCombo("", 80, 28, 145, 25, BitOR($CBS_DROPDOWN,$CBS_AUTOHSCROLL))
  2.         GUICtrlSetFont(-1, 12, 400, 0, "MS Sans Serif")
  3.                 $arr_com1 = _du("select id,agency from lvxingshe order by id")
  4.                 $temp = ""
  5.                 For $i = 0 To UBound($arr_com1,1) - 1
  6.                         $temp = $temp & $arr_com1[$i][1] & "|"
  7.                 Next
  8.         GUICtrlSetData($Comb1,$temp)
复制代码

我这个是查询数据库的,你改一下改成读取txt的就可以了
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|小黑屋|手机版|AUTOIT CN ( 鲁ICP备15028933号-3 )谷歌 百度

GMT+8, 2019-1-19 03:38 , Processed in 0.085456 second(s), 14 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表