ComboBox 控件

ComboBox 控件显示预定义值的下拉列表和用户可以在其中输入值的编辑字段。 若要将此控件与字符串或整数属性相关联,请在 Control 表的属性列中输入属性的名称

控件属性

可以将以下属性用于此控件。 若要使用事件更改属性的值,请将控件订阅到 EventMapping 表中的 ControlEvent,并在 Attribute 列中列出属性的标识符。 在事件列中输入 ControlEvent 的标识符。

属性标识符 十六进制位 描述
IndirectPropertyName 这是与控件关联的间接属性的名称。 如果设置了 Indirect 属性位,控件将显示或更改具有此名称的属性的值。 如果设置了 Indirect 属性位,则此名称也是 Control 表的“属性”列中列出的属性的值
位置 控件在对话框中的位置。 将控件左角的宽度、高度和坐标输入到 控件表的 Width、Height、X 和 Y 列。 使用 安装程序单位 长度和距离。
PropertyName 这是与此控件关联的属性的名称。 如果未设置间接属性位,控件将显示或更改具有此名称的属性的值。 此属性在 Control 表的属性列中指定。
PropertyValue 此控件显示或更改的属性的当前值。 如果未设置 Indirect 属性位,则此值为 PropertyName 的值。 如果设置了 Indirect 属性位,则这是 IndirectPropertyName 的值。 如果属性发生更改,控件将反映新值。
文本 若要设置文本字符串的字体和字体样式,请使用 {\style} 或 {&style} 作为显示字符字符串的前缀。 其中样式是 TextStyle 表的 TextStyle 列中列出的标识符。 如果两者都不存在,但 DefaultUIFont 属性定义为有效的文本样式,将使用该字体。 若要指定用户可以输入的字符数,请在任何字体规范后面追加 {n},其中 n 是正整数。
可见 0x00000000 0x00000001
隐藏的控件。 可见控件。
将此位包含在 Control 表的 Attributes 列的位词中, 以使控件在创建时可见或隐藏。
还可以使用 ControlCondition 表隐藏或显示控件。
已启用 0x00000000 0x00000002
处于禁用状态的控制。 处于启用状态的控制。
控件 的属性列中将此位包含在位词中,以便在创建时启用控件。
也可以使用 ControlCondition 表启用或禁用控件。
沉没 0x00000000 0x00000004
显示默认视觉样式。 显示具有沉没的 3D 外观的控件。
将这些位包含在 控件表的“属性”列中的位词中。
间接 0x00000000 0x00000008
该控件显示或更改 控件表的“属性”列中的属性的值。 该控件显示或更改属性的值,该属性的标识符列在控件表的“属性”列中。
确定是否间接引用与此控件关联的属性。
整数 0x00000000 0x00000010
与控件关联的属性是一个字符串值。 与控件关联的属性是一个整数值。
控件表的 Attributes 列的位单词中包含此位, 在创建控件时设置此属性。
RTLRO 0x00000000 0x00000020
控件中的文本按从左到右的阅读顺序显示。 控件中的文本以从右到左的阅读顺序显示。
RightAligned 0x00000000 0x00000040
控件中的文本与左侧对齐。 控件中的文本与右侧对齐。
LeftScroll 0x00000000 0x00000080
滚动条位于控件右侧。 滚动条位于控件左侧。
BiDi 0x000000E0 RTLRORightAlignedLeftScroll 属性的组合设置此值。
已排序的 未设置0x00010000
按字母顺序显示的项。 ListView 表中指定的顺序显示的项。
该控件 查询ComboBox 表,如果设置了排序样式位,则 ComboBox 具有CBS_SORT样式,并按 Ordering 指定显示项。 如果未设置此样式位,则按字母顺序显示项。
ComboList 未设置0x00020000
包含编辑字段的组合框。 将包含编辑字段的组合框替换为静态文本字段。
UsersLanguage 0x00000000 0x00100000
在数据库代码页中创建的字体。 在用户的默认 UI 代码页中创建的字体。

言论

可以使用 CreateWindowEx 函数从 COMBOBOX 类创建此控件。 它具有 CBS_AUTOHSCROLLWS_TABSTOPWS_GROUPWS_CHILD 样式。 如果 ComboList 位已打开,则它还具有 CBS_DROPDOWNLIST 样式,否则具有 CBS_DROPDOWN 样式。

可以通过将数字从 0 到大括号放在 2147483646 控件表文本字段开头的大括号中来限制可输入的文本的长度。 例如,如果文本字段以 {80}开头,则字符串的长度限制为 80 个字符。 如果未在表中提供此类限制,或者指定了 0,长度将设置为可能的最大长度(2147483646个字符)。 负值或非数值将生成错误。

为了与屏幕阅读器兼容,在将 ComboBox 控件作为第一个活动控件创作对话框时,必须将属于编辑字段的文本字段设为 对话框表中的第一个活动控件。 由于静态文本无法获得焦点,因此在创建对话框时,编辑字段将最初按预期获得焦点。 这样做可确保屏幕阅读器显示正确的信息。