下面的对话框显示一个复选框,在选中时启用下一个按钮。问题是当表单首次出现时,我无法将其初始状态设置为未选中状态。我已经尝试设置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}&Next >" TabSkip="no" Default="yes">
<Publish Event="EndDialog" Value="Return">DatabaseDialog_NextArgs=""</Publish>
<Publish Event="NewDialog" Value="[DatabaseDialog_NextArgs]">DatabaseDialog_NextArgs<>""</Publish>
<Condition Action="disable"><![CDATA[DatabaseBackedUp<> "1"]]></Condition>
<Condition Action="enable"><![CDATA[DatabaseBackedUp= "1"]></Condition>
</Control>
</Dialog>
答案 0 :(得分:11)
这就是我这样做的方式,它对我有用
财产:
<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
设置的值。 (无论如何,这是我的逻辑:) :)希望这有帮助
答案 1 :(得分:1)
您已定义了一个控件:
<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
的其他值。但是,我相信复选框会将任何值的存在解释为含义&#34;我应该检查&#34;。
但是,如果您未设置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。