qwert Posted September 25, 2012 Share Posted September 25, 2012 I'm adding my first use of a combo box to a simple data entry GUI. I pasted in the example from the help file (GUICtrlCreateCombo) and changed it to show the four choices I want the user to have. That much works fine. But I can't figure out these two aspects: How do I prevent the user from typing something in that is not one of my choices? IOW, I want the field to be "selectable", but not "editable". How do I cause the field to deselect after the user clicks on it and makes a selection? Right now, it remains highlighted. Thanks in advance for any help. Link to comment Share on other sites More sharing options...
guinness Posted September 25, 2012 Share Posted September 25, 2012 How do I prevent the user from typing something in that is not one of my choices? IOW, I want the field to be "selectable", but not "editable".Use the style $CBS_DROPDOWNLIST.As for your other question use the help file, there are plenty of examples e.g. look at the _GUICtrlComboBox_ functions. UDF List: _AdapterConnections() • _AlwaysRun() • _AppMon() • _AppMonEx() • _ArrayFilter/_ArrayReduce • _BinaryBin() • _CheckMsgBox() • _CmdLineRaw() • _ContextMenu() • _ConvertLHWebColor()/_ConvertSHWebColor() • _DesktopDimensions() • _DisplayPassword() • _DotNet_Load()/_DotNet_Unload() • _Fibonacci() • _FileCompare() • _FileCompareContents() • _FileNameByHandle() • _FilePrefix/SRE() • _FindInFile() • _GetBackgroundColor()/_SetBackgroundColor() • _GetConrolID() • _GetCtrlClass() • _GetDirectoryFormat() • _GetDriveMediaType() • _GetFilename()/_GetFilenameExt() • _GetHardwareID() • _GetIP() • _GetIP_Country() • _GetOSLanguage() • _GetSavedSource() • _GetStringSize() • _GetSystemPaths() • _GetURLImage() • _GIFImage() • _GoogleWeather() • _GUICtrlCreateGroup() • _GUICtrlListBox_CreateArray() • _GUICtrlListView_CreateArray() • _GUICtrlListView_SaveCSV() • _GUICtrlListView_SaveHTML() • _GUICtrlListView_SaveTxt() • _GUICtrlListView_SaveXML() • _GUICtrlMenu_Recent() • _GUICtrlMenu_SetItemImage() • _GUICtrlTreeView_CreateArray() • _GUIDisable() • _GUIImageList_SetIconFromHandle() • _GUIRegisterMsg() • _GUISetIcon() • _Icon_Clear()/_Icon_Set() • _IdleTime() • _InetGet() • _InetGetGUI() • _InetGetProgress() • _IPDetails() • _IsFileOlder() • _IsGUID() • _IsHex() • _IsPalindrome() • _IsRegKey() • _IsStringRegExp() • _IsSystemDrive() • _IsUPX() • _IsValidType() • _IsWebColor() • _Language() • _Log() • _MicrosoftInternetConnectivity() • _MSDNDataType() • _PathFull/GetRelative/Split() • _PathSplitEx() • _PrintFromArray() • _ProgressSetMarquee() • _ReDim() • _RockPaperScissors()/_RockPaperScissorsLizardSpock() • _ScrollingCredits • _SelfDelete() • _SelfRename() • _SelfUpdate() • _SendTo() • _ShellAll() • _ShellFile() • _ShellFolder() • _SingletonHWID() • _SingletonPID() • _Startup() • _StringCompact() • _StringIsValid() • _StringRegExpMetaCharacters() • _StringReplaceWholeWord() • _StringStripChars() • _Temperature() • _TrialPeriod() • _UKToUSDate()/_USToUKDate() • _WinAPI_Create_CTL_CODE() • _WinAPI_CreateGUID() • _WMIDateStringToDate()/_DateToWMIDateString() • Au3 script parsing • AutoIt Search • AutoIt3 Portable • AutoIt3WrapperToPragma • AutoItWinGetTitle()/AutoItWinSetTitle() • Coding • DirToHTML5 • FileInstallr • FileReadLastChars() • GeoIP database • GUI - Only Close Button • GUI Examples • GUICtrlDeleteImage() • GUICtrlGetBkColor() • GUICtrlGetStyle() • GUIEvents • GUIGetBkColor() • Int_Parse() & Int_TryParse() • IsISBN() • LockFile() • Mapping CtrlIDs • OOP in AutoIt • ParseHeadersToSciTE() • PasswordValid • PasteBin • Posts Per Day • PreExpand • Protect Globals • Queue() • Resource Update • ResourcesEx • SciTE Jump • Settings INI • SHELLHOOK • Shunting-Yard • Signature Creator • Stack() • Stopwatch() • StringAddLF()/StringStripLF() • StringEOLToCRLF() • VSCROLL • WM_COPYDATA • More Examples... Updated: 22/04/2018 Link to comment Share on other sites More sharing options...
FireFox Posted September 25, 2012 Share Posted September 25, 2012 Hi, I want the field to be "selectable", but not "editable". #include <ComboConstants.au3> GUICtrlCreateCombo("", 0, 0, 100, 20, $CBS_DROPDOWNLIST) How do I cause the field to deselect after the user clicks on it and makes a selection? $coMyCombo = ... GUIRegisterMsg($WM_COMMAND, "WM_COMMAND") Func WM_COMMAND($hWnd, $iMsg, $iwParam, $ilParam) Local $iIDFrom, $iCode $iIDFrom = _WinAPI_LoWord($iwParam) $iCode = _WinAPI_HiWord($iwParam) Switch $iCode Case $CBN_CLOSEUP If $coMyCombo = $iIDFrom Then ;ACTIVATE ANOTHER CTRL by ControlFocus OR GUI by WinActivate HERE TO SET THE FOCUS ON SOMETHING ELSE. EndIf EndSwitch Return $GUI_RUNDEFMSG EndFunc ;==>WM_COMMAND Br, FireFox. Link to comment Share on other sites More sharing options...
qwert Posted September 25, 2012 Author Share Posted September 25, 2012 Thanks, FireFox. That works just as described. I was able to add another input field just below my ComboBox, with a ControlFocus in the script where you indicated. But what if I don't want ANY field to have focus after the select? I couldn't find a ControlFocus=None ... and defining as "" didn't work. Any suggestions? Link to comment Share on other sites More sharing options...
FireFox Posted September 25, 2012 Share Posted September 25, 2012 You can set the focus on a hidden label for example. Br, FireFox. Link to comment Share on other sites More sharing options...
qwert Posted September 25, 2012 Author Share Posted September 25, 2012 Actually (I've now found), the label doesn't have to be a hidden one. Changing focus to any label field deselects an input-type field. I never thought of trying that ... because focus implies that it's input-related.Thanks very much. Link to comment Share on other sites More sharing options...
FireFox Posted September 25, 2012 Share Posted September 25, 2012 (edited) Actually (I've now found), the label doesn't have to be a hidden one. Changing focus to any label field deselects an input-type field.I never thought of trying that ... because focus implies that it's input-related.Thanks very much.Yes, HIDDEN or not it does not change anything, I read your text too fast and I though you said "what if I don't *have* ANY *ctrl* to have focus after the select?"Br, FireFox. Edited September 25, 2012 by FireFox Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now