如何在 Windows 安装程序自定义对话框中设置必填字段
How to make a field Mandatory in Windows Installer custom dialog
我最近为我的 C# .NET Windows Forms 应用程序创建了一个安装项目。
在我的用户界面编辑器中我有:
- Start
- Welcome
- Textboxes (A)
- Installation Folder
- Confirm Installation
在文本框 (A) 对话框中,我有一个编辑字段,我想将其设置为必填项。
我该怎么做?我已经下载了 Orca 编辑器。有没有一种简单的方法可以使用它来做到这一点?
这是我希望实现的两个目标(至少目标1):
- 到 enable/disable 下一个基于编辑标签非空的按钮
- 是否可以在点击下一步按钮后验证内容?
感谢任何帮助。
谢谢!
Windows 安装程序对话框定义位于已部署版本的 VS 的 IDE 文件夹下的 CommonExtensions\Microsoft\VSI\bin\VsdDialogs
文件夹中,例如,对于 VS 2017,它是这样的:
C:\Program Files (x86)\Microsoft Visual Studio17\Professional\Common7\IDE\CommonExtensions\Microsoft\VSI\bin\VsdDialogs\
在该文件夹中,以管理员身份进入 0
和 1033
文件夹,运行 orca
并更改用于 Textboxes (A)
.
Note 1: You can create a new windows installer dialog by copying that
file and renaming it to MyCustomDialog.wid
. Then open it in orca and
go to ModuleDialog
table and change the DisplayName
to My Custom Dialog
. Make sure you copy the file in both 1033
and 0
. Then in
VS, you can add an instance of this dialog using User Interface Editor
of Setup project.
Note 2: You can also edit the msi
file using Orca
and edit the control conditions, but if you do so, then every time you build the setup project, you need to repeat editing of the msi
file. So editing .wid
makes more sense.
Note 3: Combining conditions of fields using AND
and OR
is possible as well. For more information, take a look at
ControlCondition
Table
and Conditional Statement
Syntax
在 Windows 安装程序自定义对话框中强制设置一个字段
要强制设置 Edit1
值并启用或禁用 [=68=]Next 按钮:
运行 orca
作为管理员
打开您用于添加自定义对话框的 wid
文件。
在 ControlCondition
中,除了现有行之外,添加以下行:
┌──────────────┬──────────────┬──────────────┬──────────────┐
│ Dialog_ │ Control_ │ Action │ Condition │
├──────────────┼──────────────┼──────────────┼──────────────┤
...
│ CustomTextA │ NextButton │ Disable │ EDITA1="" │
│ CustomTextA │ NextButton │ Enable │ EDITA1<>"" │
└──────────────┴──────────────┴──────────────┴──────────────┘
保存文件并确保 1033
和 0
文件夹中的文件相同。
关闭Orca
重建安装项目。
安装它。
因此您会看到这样的行为:
我最近为我的 C# .NET Windows Forms 应用程序创建了一个安装项目。
在我的用户界面编辑器中我有:
- Start
- Welcome
- Textboxes (A)
- Installation Folder
- Confirm Installation
在文本框 (A) 对话框中,我有一个编辑字段,我想将其设置为必填项。
我该怎么做?我已经下载了 Orca 编辑器。有没有一种简单的方法可以使用它来做到这一点?
这是我希望实现的两个目标(至少目标1):
- 到 enable/disable 下一个基于编辑标签非空的按钮
- 是否可以在点击下一步按钮后验证内容?
感谢任何帮助。
谢谢!
Windows 安装程序对话框定义位于已部署版本的 VS 的 IDE 文件夹下的 CommonExtensions\Microsoft\VSI\bin\VsdDialogs
文件夹中,例如,对于 VS 2017,它是这样的:
C:\Program Files (x86)\Microsoft Visual Studio17\Professional\Common7\IDE\CommonExtensions\Microsoft\VSI\bin\VsdDialogs\
在该文件夹中,以管理员身份进入 0
和 1033
文件夹,运行 orca
并更改用于 Textboxes (A)
.
Note 1: You can create a new windows installer dialog by copying that file and renaming it to
MyCustomDialog.wid
. Then open it in orca and go toModuleDialog
table and change theDisplayName
toMy Custom Dialog
. Make sure you copy the file in both1033
and0
. Then in VS, you can add an instance of this dialog using User Interface Editor of Setup project.
Note 2: You can also edit the
msi
file usingOrca
and edit the control conditions, but if you do so, then every time you build the setup project, you need to repeat editing of themsi
file. So editing.wid
makes more sense.
Note 3: Combining conditions of fields using
AND
andOR
is possible as well. For more information, take a look at ControlCondition Table and Conditional Statement Syntax
在 Windows 安装程序自定义对话框中强制设置一个字段
要强制设置 Edit1
值并启用或禁用 [=68=]Next 按钮:
运行
orca
作为管理员打开您用于添加自定义对话框的
wid
文件。在
ControlCondition
中,除了现有行之外,添加以下行:┌──────────────┬──────────────┬──────────────┬──────────────┐ │ Dialog_ │ Control_ │ Action │ Condition │ ├──────────────┼──────────────┼──────────────┼──────────────┤ ... │ CustomTextA │ NextButton │ Disable │ EDITA1="" │ │ CustomTextA │ NextButton │ Enable │ EDITA1<>"" │ └──────────────┴──────────────┴──────────────┴──────────────┘
保存文件并确保
1033
和0
文件夹中的文件相同。关闭
Orca
重建安装项目。
安装它。
因此您会看到这样的行为: