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 | 针对 RTLRO、RightAligned 和 LeftScroll 属性的组合设置此值。 |
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 键从控件切换位置,或者为要更新的属性选择其他控件。