在取消选择时,我无法找到如何更改复选框(=属性)的值。
我到目前为止:
<Property Id="INSTALLEXCEL2007" />
<Control Type="CheckBox" Id="Excel2007_Checkbox" Width="88" Height="17" X="22" Y="120" Text="Excel 2007" Property="INSTALLEXCEL2007" CheckBoxValue="1" />
代码表示如果用户检查,属性INSTALLEXCEL2007
将获得值1
。
现在,如果未选中,则值仍为1
。这意味着,每次单击复选框都会将值1
分配给此属性。
有没有办法获得“未经检查的价值”?
我已经尝试了this,但在我的情况下它没有用。
答案 0 :(得分:1)
如果用户取消选中“复选框”,则该属性将被删除或其值变为null。您可以使用如下所示的取消选中条件。
INSTALLEXCEL2007 <> 1
如果使用文本控件在对话框中测试Checkbox属性值(选中并取消选中),则不会更新。您需要发布该属性,或者如果单击下一个或后退按钮,它将被更新。
答案 1 :(得分:1)
在尝试使用复选框完成任务后,我已切换到组合框。 使用它们真的很容易,虽然它不像复选框那样漂亮。
这是我的一个组合框的例子(也许有人可能觉得它很有用):
<Control Type="ComboBox" Id="Excel2007_Combobox" Width="75" Height="14" X="165" Y="114" ComboList="yes" Property="INSTALLEXCEL2007">
<ComboBox Property="INSTALLEXCEL2007">
<ListItem Text="No" Value="0" />
<ListItem Text="Yes" Value="1" />
</ComboBox>
</Control>
选择一个值后,很容易使用“INSTALLEXCEL2007”属性的值作为条件:
<Publish Dialog="ExcelChooserDlg" Control="ExcelChooser_Accept" Event="SpawnDialog" Value="WarningDlg_NoOfficeVersion" Order="1"><![CDATA[INSTALLEXCEL2007<>"1"]]></Publish>