ComboBox 控件

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

控件属性

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

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

备注

可使用 CreateWindowEx 函数从 COMBOBOX 类创建此控件。 它具有 CBS_AUTOHSCROLL、WS_TABSTOP、WS_GROUP 和 WS_CHILD 样式。 如果 ComboList 位处于打开状态,则它也具有 CBS_DROPDOWNLIST 样式,否则它具有 CBS _ DROPDOWNLIST 样式。

可通过在 Control 表中文本字段的开头加上大括号来限制可以输入的文本长度,范围为 0 到 2147483646。 例如,如果文本字段以 {80} 开头,则字符串长度限制为 80 个字符。 如果表中没有提供这样的限制,或者指定了 0,则长度将设置为可能的最大值(2147483646 个字符)。 负值或非数字值将生成错误。

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