查看源代码 wxComboBox (wx v2.4.3)
组合框类似于编辑控件和列表框的组合。
它可以显示为带有可编辑或只读文本字段的静态列表;或带有文本字段的下拉列表;或者根据平台和 wxCB_READONLY 样式的存在,显示为不带文本字段的下拉列表。
组合框只允许单选。组合框的项从零开始编号。
如果您需要自定义的组合框,请查看 wxComboCtrl
(在 wx 中未实现)、 wxOwnerDrawnComboBox
(在 wx 中未实现)、 wxComboPopup
(在 wx 中未实现)和现成的 wxBitmapComboBox
(在 wx 中未实现)。
请参阅 wxTextEntry
(在 wx 中未实现)文档,了解有关操作组合框文本输入部分的方法的描述,以及参阅 wxItemContainer
(在 wx 中未实现)文档,了解有关操作字符串列表的方法的描述。请注意,至少在 MSW 下,如果 wxComboBox
中包含仅大小写不同的字符串,则其行为不正确,因此可移植程序应避免将此类字符串添加到此控件中。
样式
此类支持以下样式
wxCB_SIMPLE:创建一个带有永久显示列表的组合框。仅限 Windows。
wxCB_DROPDOWN:创建一个带有下拉列表的组合框。仅限 MSW 和 Motif。
wxCB_READONLY:具有此样式的组合框的行为类似于
wxChoice
(并且可能看起来也一样,尽管这取决于平台),即它允许用户从选项列表中选择,但不允许输入列表中不存在的值。wxCB_SORT:按字母顺序对列表中的条目进行排序。
wxTE_PROCESS_ENTER:该控件将生成
wxEVT_TEXT_ENTER
事件,该事件可由程序处理。否则,即如果根本没有指定此样式,或者使用了它,但没有此事件的事件处理程序,或者事件处理程序调用了wxEvent:skip/2
以避免覆盖默认处理,则按下 Enter 键要么由控件内部处理,要么用于激活对话框的默认按钮(如果有)。
请参阅
此类派生自以下类,并可以使用其函数:
wxWidgets 文档:wxComboBox
事件
此类发出的事件类型
摘要
函数
如果可以将选定的内容复制到剪贴板,则返回 true。
如果可以将选定的内容剪切到剪贴板,则返回 true。
如果可以将剪贴板的内容粘贴到文本控件中,则返回 true。
如果有重做功能可用且可以重做上次操作,则返回 true。
如果有撤消功能可用且可以撤消上次操作,则返回 true。
将选定的文本复制到剪贴板。
将选定的文本复制到剪贴板并将其从控件中删除。
销毁对象
返回文本控件中最后一个位置的从零开始的索引,该索引等于控件中的字符数。
获取控件的内容。
默认构造函数。
构造函数,创建并显示一个组合框。
将剪贴板中的文本粘贴到文本项中。
如果有重做功能并且可以重做上次操作,则重做上次操作。
删除从第一个给定位置开始到最后一个位置的字符(但不包括)的文本。
将从第一个位置开始到最后一个位置的字符(但不包括)的文本替换为给定的文本。
将插入点设置到给定位置。
将插入点设置到文本控件的末尾。
将选择设置为给定的项目 n
,如果 n
== wxNOT\_FOUND
,则完全删除选择。
设置组合框文本字段的文本。
如果有撤消功能并且可以撤消上次操作,则撤消上次操作。
类型
-type wxComboBox() :: wx:wx_object().
函数
-spec canCopy(This) -> boolean() when This :: wxComboBox().
如果可以将选定的内容复制到剪贴板,则返回 true。
-spec canCut(This) -> boolean() when This :: wxComboBox().
如果可以将选定的内容剪切到剪贴板,则返回 true。
-spec canPaste(This) -> boolean() when This :: wxComboBox().
如果可以将剪贴板的内容粘贴到文本控件中,则返回 true。
在某些平台(Motif、GTK)上,这是一个近似值,如果控件是可编辑的,则返回 true,否则返回 false。
-spec canRedo(This) -> boolean() when This :: wxComboBox().
如果有重做功能可用且可以重做上次操作,则返回 true。
-spec canUndo(This) -> boolean() when This :: wxComboBox().
如果有撤消功能可用且可以撤消上次操作,则返回 true。
-spec copy(This) -> ok when This :: wxComboBox().
将选定的文本复制到剪贴板。
-spec create(This, Parent, Id, Value, Pos, Size, Choices) -> boolean() when This :: wxComboBox(), Parent :: wxWindow:wxWindow(), Id :: integer(), Value :: unicode:chardata(), Pos :: {X :: integer(), Y :: integer()}, Size :: {W :: integer(), H :: integer()}, Choices :: [unicode:chardata()].
等效于 create(This, Parent, Id, Value, Pos, Size, Choices, [])
。
-spec create(This, Parent, Id, Value, Pos, Size, Choices, [Option]) -> boolean() when This :: wxComboBox(), Parent :: wxWindow:wxWindow(), Id :: integer(), Value :: unicode:chardata(), Pos :: {X :: integer(), Y :: integer()}, Size :: {W :: integer(), H :: integer()}, Choices :: [unicode:chardata()], Option :: {style, integer()} | {validator, wx:wx_object()}.
-spec cut(This) -> ok when This :: wxComboBox().
将选定的文本复制到剪贴板并将其从控件中删除。
-spec destroy(This :: wxComboBox()) -> ok.
销毁对象
-spec getInsertionPoint(This) -> integer() when This :: wxComboBox().
与 wxTextCtrl:getInsertionPoint/1
相同。
注意:在 wxMSW 下,如果组合框没有焦点,则此函数始终返回 0。
-spec getLastPosition(This) -> integer() when This :: wxComboBox().
返回文本控件中最后一个位置的从零开始的索引,该索引等于控件中的字符数。
-spec getValue(This) -> unicode:charlist() when This :: wxComboBox().
获取控件的内容。
请注意,对于多行文本控件,行将由(Unix 样式)\n
字符分隔,即使在 Windows 下,它们在原生控件中也由 \r\n
序列分隔。
-spec new() -> wxComboBox().
默认构造函数。
-spec new(Parent, Id) -> wxComboBox() when Parent :: wxWindow:wxWindow(), Id :: integer().
等效于 new(Parent, Id, [])
。
-spec new(Parent, Id, [Option]) -> wxComboBox() when Parent :: wxWindow:wxWindow(), Id :: integer(), Option :: {value, unicode:chardata()} | {pos, {X :: integer(), Y :: integer()}} | {size, {W :: integer(), H :: integer()}} | {choices, [unicode:chardata()]} | {style, integer()} | {validator, wx:wx_object()}.
构造函数,创建并显示一个组合框。
请参阅:create/8
-spec paste(This) -> ok when This :: wxComboBox().
将剪贴板中的文本粘贴到文本项中。
-spec redo(This) -> ok when This :: wxComboBox().
如果有重做功能并且可以重做上次操作,则重做上次操作。
如果没有重做功能,则不执行任何操作。
-spec remove(This, From, To) -> ok when This :: wxComboBox(), From :: integer(), To :: integer().
删除从第一个给定位置开始到最后一个位置的字符(但不包括)的文本。
此函数将当前插入点位置设置为 to
作为副作用。
-spec replace(This, From, To, Value) -> ok when This :: wxComboBox(), From :: integer(), To :: integer(), Value :: unicode:chardata().
将从第一个位置开始到最后一个位置的字符(但不包括)的文本替换为给定的文本。
此函数将当前插入点位置设置为 to
作为副作用。
-spec setInsertionPoint(This, Pos) -> ok when This :: wxComboBox(), Pos :: integer().
将插入点设置到给定位置。
-spec setInsertionPointEnd(This) -> ok when This :: wxComboBox().
将插入点设置到文本控件的末尾。
这等效于使用 getLastPosition/1
参数调用 setInsertionPoint/2
。
-spec setSelection(This, N) -> ok when This :: wxComboBox(), N :: integer().
将选择设置为给定的项目 n
,如果 n
== wxNOT\_FOUND
,则完全删除选择。
请注意,这不会导致发出任何命令事件,也不会取消选择支持多项选择的控件中的任何其他项目。
请参阅
-spec setSelection(This, From, To) -> ok when This :: wxComboBox(), From :: integer(), To :: integer().
-spec setValue(This, Text) -> ok when This :: wxComboBox(), Text :: unicode:chardata().
设置组合框文本字段的文本。
对于具有文本输入字段的普通可编辑组合框,调用此方法将生成 wxEVT_TEXT
事件,与 wxTextCtrl:setValue/2
行为一致,如果不需要此行为,则使用 wxTextCtrl:changeValue/2
。
对于具有 wxCB_READONLY
样式的控件,该方法的行为略有不同:该字符串必须在组合框选择列表中(对此的检查不区分大小写),并且在这种情况下 不会
生成 wxEVT_TEXT
。
-spec undo(This) -> ok when This :: wxComboBox().
如果有撤消功能并且可以撤消上次操作,则撤消上次操作。
如果没有撤消功能,则不执行任何操作。