修改ComboBox输入框样式
该ComboBox初始状态为:编辑框禁止输入文本,但仍可以在ComboBox中先择项目,如何在后面将其改为默许状态(编辑框可以输入文本)?
#include <ButtonConstants.au3>
#include <ComboConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 253, 193, 192, 124)
$Combo1 = GUICtrlCreateCombo("11", 48, 24, 137, 25, BitOR($CBS_DROPDOWNLIST,$CBS_AUTOHSCROLL))
GUICtrlSetData(-1,"22|33")
$Button1 = GUICtrlCreateButton("切换为可输入状态", 64, 128, 105, 25, 0)
$Label1 = GUICtrlCreateLabel("该ComboBox初始状态为:编辑禁止输入文本,如何在后面将其改为默许的可输入状态?", 56, 56, 133, 49)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Button1
GUICtrlSetStyle($Combo1,$GUI_SS_DEFAULT_COMBO)
EndSwitch
WEnd
[ 本帖最后由 qst 于 2009-3-26 23:02 编辑 ] #include <ButtonConstants.au3>
#include <ComboConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 253, 193, 192, 124)
$Combo1 = GUICtrlCreateCombo("11", 48, 24, 137, 80, BitOR($CBS_DROPDOWNLIST, $CBS_AUTOHSCROLL))
GUICtrlSetData(-1, "22|33")
GUICtrlSetState(-1, $GUI_DISABLE)
$Button1 = GUICtrlCreateButton("切换为可输入状态", 64, 128, 105, 25, 0)
$Label1 = GUICtrlCreateLabel("该ComboBox初始状态为:编辑禁止输入文本,如何在后面将其改为默许的可输入状态?", 56, 56, 133, 49)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Button1
GUICtrlSetState($Combo1, $GUI_ENABLE)
EndSwitch
WEnd
回复 2# sxd 的帖子
不用要禁用combobox,只是要将其编辑框由禁止输入文本改为可以输入文本。整个过和程不影响conbobox的功能。 GUICtrlSetStyle($Combo1,$GUI_SS_DEFAULT_COMBO)为什么这个不起作用?? 楼主的那个按纽确实不起作用
另问,楼主有办法初始化COMBOBOX的值吗?? 要求这个初始值不在COMBOBOX项值里。。
譬如象你代码中的COMBOX值为11|22||33, 我如果想在显示时默认为44,要求44不要在下拉列表里出现。。
呵呵,说的好乱,不知楼主明白意思没??
具体应用,譬如工具里,有个修改主页的功能,默认呢,显示出当前主页,而下拉COMBO里集成几个常用地址。。 嗯我看错标题了
如果建立控件的时候设置能输入 那就会创建一个combobox 一个edit
如果不能输入 就只会创建一个combobox所以 应该没办法用一般方法来实现吧
不然就这样把 囧
#include <ButtonConstants.au3>
#include <ComboConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 253, 193, 192, 124)
$Combo1 = GUICtrlCreateCombo("11", 48, 24, 137, 25, BitOR($CBS_DROPDOWNLIST,$CBS_AUTOHSCROLL))
GUICtrlSetData(-1,"22|33")
$Button1 = GUICtrlCreateButton("切换为可输入状态", 64, 128, 105, 25, 0)
$Label1 = GUICtrlCreateLabel("该ComboBox初始状态为:编辑禁止输入文本,如何在后面将其改为默许的可输入状态?", 56, 56, 133, 49)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Button1
GUICtrlDelete($Combo1)
$Combo1 = GUICtrlCreateCombo("11", 48, 24, 137, 25)
EndSwitch
WEnd
[ 本帖最后由 sxd 于 2009-3-26 03:08 编辑 ] 原帖由 llztt 于 2009-3-25 10:12 发表 http://www.autoitx.com/images/common/back.gif
楼主的那个按纽确实不起作用
另问,楼主有办法初始化COMBOBOX的值吗?? 要求这个初始值不在COMBOBOX项值里。。
譬如象你代码中的COMBOX值为11|22||33, 我如果想在显示时默认为44,要求44不要在下拉列表里出现。 ...
先设置combo的值
再ControlSetText combo的edit 非常感谢sxd,我的问题解决了,呵呵
至于楼主问题,先删再建的办法,在有TAB的情况下,有些麻烦,因为再建的控件在所有TAB里都是可见的 最好能截个图 :)
回复 5# llztt 的帖子
#Include <GuiComboBox.au3>_GUICtrlComboBox_SetEditText($hWnd, $sText)
回复 10# qst 的帖子
恩,楼上这个也行呢,不过我还是用SXD说的ControlSetText 了,因为我的那个操作是针对input或者COMBO的。。而ControlSetText ,正好都适用于这两种控件。。
页:
[1]