7

下面的对话框显示一个复选框,选中该复选框会启用“下一步”按钮。问题是当表单首次出现时,我无法将其初始状态设置为未选中。我尝试设置 CheckBoxValue = 1 但这也不起作用。

    <Dialog Id="DatabaseDialog" X="50" Y="50" Width="373" Height="287" Title="[ProductName]">
                <Control Id="EnableCheckBox" Property="DatabaseBackedUp" Type="CheckBox" X="20" Y="150" Width="290" Height="30" 
                         Text="Has the database been backed up?" CheckBoxValue="0" />
                <Control Id="NextButton" Type="PushButton" X="300" Y="261" Width="66" Height="18" Text="{\VSI_MS_Sans_Serif13.0_0_0}&amp;Next &gt;" TabSkip="no" Default="yes">
                    <Publish Event="EndDialog" Value="Return">DatabaseDialog_NextArgs=""</Publish>
                    <Publish Event="NewDialog" Value="[DatabaseDialog_NextArgs]">DatabaseDialog_NextArgs&lt;&gt;""</Publish>
                 <Condition Action="disable"><![CDATA[DatabaseBackedUp<> "1"]]></Condition>
                 <Condition Action="enable"><![CDATA[DatabaseBackedUp= "1"]></Condition>
                </Control>
</Dialog>
4

2 回答 2

15

这就是我这样做的方式,它对我有用

物业:

  <Property Id="CHECKBOX" Secure="yes"></Property>

复选框:

<Control Id="CheckBoxId" Type="CheckBox"  Text="Use the proxy server for your LAN" Property="CHECKBOX" Width="180" Height="15" X="25" Y="103" CheckBoxValue="1"/>

我相信这是可行的,因为您首先将链接到复选框的属性设置为空,因此它保持为空,如果单击它,则属性值等于设置的任何值CheckBoxValue。(无论如何,这是我的逻辑..:))希望这会有所帮助

于 2012-10-24T09:31:09.637 回答
3

您已经定义了一个控件:

<Control Id="EnableCheckBox"
         Type="CheckBox"
         Property="DatabaseBackedUp" 
         X="20" Y="150" Width="290" Height="30" 
         Text="Has the database been backed up?" 
         CheckBoxValue="0" />

你没有提到你是否还在DatabaseBackedUp解决方案的其他地方定义了一个属性,但我假设你已经定义了这样的东西:

<Property Id="DatabaseBackedUp" Value="0"></Property>

您可能已经尝试过其他值Value但是,我相信该复选框会将任何值的存在解释为“我应该被检查”。

但是,如果您不设置Value属性,则会收到警告:"Property 'CHECKBOX' does not contain a Value attribute and is not marked as Admin, Secure, or Hidden. The Property element is being ignored."

设置这些属性之一将使警告消失,但会带来可能需要也可能不需要的其他行为。

解决方案是简单地删除该属性

然后该复选框将找不到任何值,并且默认为未选中。检查它仍将按需要工作(即它将创建并设置属性的值)。

我已经用 WiX v3.11.1 成功地尝试了这个。

于 2018-06-11T11:07:10.200 回答