从自动获得当前选择的字符串combobox
问题描述:
#include <GUIConstantsEx.au3>
#Include <GuiComboBox.au3>
#include <GuiComboBoxEx.au3>
; Create GUI
$hGUI = GUICreate("Test", 500, 500)
Global $hCombo = GUICtrlCreateCombo("", 10, 10, 250, 20)
GUICtrlSetData($hCombo, "Atchu | Muthu | Ponreegan | Vijay | Vasu", "Vasu")
$hGetButton = GUICtrlCreateButton("Get", 270, 10, 30, 20)
Global $temp = " "
While 1
Switch GUIGetMsg()
Case $GUI_EVENT_CLOSE
Exit
Case $hAddButton
$temp = _GUICtrlComboBoxEx_GetEditText($hCombo)
MsgBox($MB_SYSTEMMODAL, "", "You chose: " & $temp)
Exit
EndSwitch
WEnd
有几个名称添加到组合框,点击“获取按钮”,它不返回字符串。任何想法?从自动获得当前选择的字符串combobox
答
您的代码甚至无法运行。有两个问题:
第一个是在创建按钮时使用$ hGetButton,而在循环中等待GUI消息时使用$ hAddButton。这是导致代码无法运行的原因。
第二个问题是您正在使用错误的函数来读取组合框数据。您应该使用GUICtrlRead
修复这些问题使得代码工作:
#include <GUIConstantsEx.au3>
#Include <GuiComboBox.au3>
#include <GuiComboBoxEx.au3>
; Create GUI
$hGUI = GUICreate("Test", 500, 500)
Global $hCombo = GUICtrlCreateCombo("", 10, 10, 250, 20)
GUICtrlSetData($hCombo, "Atchu | Muthu | Ponreegan | Vijay | Vasu", "Vasu")
$hGetButton = GUICtrlCreateButton("Get", 270, 10, 30, 20)
Global $temp = " "
GUISetState (@SW_SHOW , $hGUI)
While 1
Switch GUIGetMsg()
Case $GUI_EVENT_CLOSE
Exit
Case $hGetButton
$temp = GUICtrlRead($hCombo)
MsgBox($MB_SYSTEMMODAL, "", "You chose: " & $temp)
Exit
EndSwitch
WEnd