从自动获得当前选择的字符串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