【问题标题】:hide textboxes on checkbox checked in WiX在 WiX 中选中的复选框上隐藏文本框
【发布时间】:2011-03-31 13:39:17
【问题描述】:

是否可以隐藏在 WiX 中选中的复选框上的文本框?

【问题讨论】:

标签: wix windows-installer


【解决方案1】:

感谢您的 cmets,第一条评论帮助了我。这样做是这样的:

<Control Id="LoginTextBox" Type="Edit" Text="CM2" Height="17" Width="200" X="150" Y="198" Property="Login">
    <Condition Action="hide" >CreateDBUsers&lt;&gt;1</Condition>
    <Condition Action="show" >CreateDBUsers=1</Condition>
</Control>

【讨论】:

  • 但请注意,它不会动态发生。我的意思是,如果您更改复选框状态,即使条件合适,同一对话框上的编辑框也不会隐藏,直到您刷新对话框(下一个/后退)
  • @Yan Sklyarenko:不会?我认为这种性质的大多数更新都可以正常工作。那些不这样做的:在 UI 背后执行的那些(例如使用 MsiSetProperty),以及那些更改与用户已更改文本的编辑控件关联的属性的那些。这样做的:启用/禁用(例如响应许可证对话框上的单选按钮)。隐藏/显示不是响应像后者这样的复选框吗?
  • 其实它们会动态隐藏,我已经测试过了。
【解决方案2】:

这是一个非常古老的问题,答案是:是的,有可能。

我终于根据this blog postBogdan Verbenets's answer 了解了它的工作原理。为了详细说明已经选择的答案,这个基于他的答案的 sn-p 可能会帮助您了解更多:

<Control Id="AnyCheckBox" Type="CheckBox" Height="17" Width="10" X="150" Y="180" Property="CreateDBUsers" CheckBoxValue="1" />

<Control Id="LoginTextBox" Type="Edit" Text="CM2" Height="17" Width="200" X="150" Y="198" Property="Login">
  <Condition Action="hide"><![CDATA[CreateDBUsers<>"1"]]></Condition>
  <Condition Action="show">CreateDBUsers="1"</Condition>
</Control>

上面的代码工作原理与下面的相同

<Control Id="AnyCheckBox" Type="CheckBox" Height="17" Width="10" X="150" Y="180" Property="CreateDBUsers" CheckBoxValue="0" />

<Control Id="LoginTextBox" Type="Edit" Text="CM2" Height="17" Width="200" X="150" Y="198" Property="Login">
  <Condition Action="hide"><![CDATA[CreateDBUsers<>"0"]]></Condition>
  <Condition Action="show">CreateDBUsers="0"</Condition>
</Control>

请注意CheckBoxValue,它的值决定了你要在条件文本中写什么。

注意:

  • 当您需要编写涉及&lt;(小于等于)或&gt;(大于等于)的条件时,最好使用&lt;![CDATA[ write_something_here ]]&gt;
  • 在条件文本中使用字符串("1""0")可能更合适,因为CheckBoxValue实际上使用字符串数据类型,您可以查看official documentation。虽然这不是强制性的。

复选框在 WiX 中绝对是完全不同的东西。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多