如何在 Wix 自定义对话框的文本框中输入值?

问题描述 投票:0回答:3

我有一个 Wix 对话框,其中包含类型编辑控件(这是服务所依赖的服务器的 uri)。

如何在输入值之前禁用“下一步”按钮?

wix
3个回答
11
投票

这是我们曾经使用的一些(旧)生产代码的摘录:

<Dialog Id="MyDlg_Error" Width="260" Height="85" NoMinimize="yes" Title="!(loc.MyDlg_Title)">
    <Control Id="MyDlgSkipDesc" Type="Text" Width="194" X="48" Y="15" Height="30" Text="!(loc.MyDlg_ErrorMsg)" />
    <Control Id="Ok" Type="PushButton" X="97" Y="57" Width="66" Height="17" Text="!(loc.WixUIOK)" />
</Dialog>

<Publish Dialog="MyDlg" Control="Next" Event="SpawnDialog" Value="MyDlg_Error"><![CDATA[Not (MY_REQUIRED_FIELD <> "")]]></Publish>

<Publish Dialog="MyDlg_Error" Control="Ok" Event="EndDialog" Value="Return">1</Publish>

3
投票

没有合理的方法可以做到这一点。相反,保持 Next 处于启用状态,并使用与 Next 绑定的 SpawnDialog 控件事件进行检查,如果该属性为空,则显示错误。如果您想要一些比“非空”更有用的东西,它还可以让您运行验证自定义操作。


0
投票

根据输入的数据启用或禁用自定义表单上的按钮非常容易。这是自定义对话框中的下一个按钮:

    <Control Id="Next" Type="PushButton" X="236" Y="243" Width="56" Height="17" Default="yes" Text="!(loc.WixUINext)">
      <Condition Action="enable"><![CDATA[TARGET_ENVIRONMENT<>""]]></Condition>
      <Condition Action="disable"><![CDATA[TARGET_ENVIRONMENT~=""]]></Condition>
    </Control>

一旦文本不为空,下一个按钮就会自动启用。不需要错误对话框。我们将其与下拉菜单一起使用,但它也适用于文本框。

© www.soinside.com 2019 - 2024. All rights reserved.