Edit 控件 (Windows Installer)

Edit 控件是一个与字符串或整数值属性关联的编辑字段。 在 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 属性的组合设置此值。
MultiLine 0x00010000 创建包含垂直滚动条的多行编辑控件。 在 Control 表的 Attributes 列中的位字中包含 65536,以创建包含垂直滚动条的多行编辑控件。
密码 0x00200000 创建用于输入密码的编辑控件。 将 2097152 添加到 Control 表的 Attributes 列中的值中,以创建一个编辑控件,在控件中键入每个字符时,该控件会将该字符显示为星号 (*)。 设置 Password 属性可防止安装程序将与 Edit 控件关联的属性写入日志文件。 有关详细信息,请参阅防止将机密信息写入日志文件

备注

可以使用 CreateWindowEx 函数从 EDIT 类创建此控件。 它具有 WS_BORDER、WS_CHILD、WS_TABSTOP 和 WS_GROUP 样式。

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

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

仅当控件失去焦点时,才会设置与 Edit 控件关联的属性。 因此,必须使用 Tab 键从控件切换位置,或者为要更新的属性选择其他控件。