检查MaskedEdit控件是否包含文本

时间:2010-12-14 15:17:55

标签: wix

您好 我正在使用wix创建一个安装。我需要一个自定义对话框让用户定义一个端口。该对话框有一个MaskedEdit类型的控件,他应该写入该端口。连接到控件的属性已定义默认值。问题是,当用户按下下一个按钮时,我想确保端口字段有值或者向他显示警告。 控件的代码如下所示:

<Property Id="DataStoragePort">4323</Property>

  <Dialog Id="DataStoragePortConfig" Width="370" Height="270" Title="CellaVision DM1 Setup">
    <Control Id="Next" Type="PushButton" X="236" Y="243" Width="56" Height="17" Default="yes" Text="Next">
    </Control>
    <Control Id="Back" Type="PushButton" X="180" Y="243" Width="56" Height="17" Text="Back">
    </Control>
    <Control Id="Cancel" Type="PushButton" X="304" Y="243" Width="56" Height="17" Cancel="yes" Text="Cancel">
      <Publish Event="SpawnDialog" Value="CancelDlg">1</Publish>
    </Control>

    <Control Id="Title" Type="Text" X="15" Y="6" Width="200" Height="15" Transparent="yes" NoPrefix="yes" Text="{\WixUI_Font_Title}Data Storage Configuration" />
    <Control Id="BannerBitmap" Type="Bitmap" X="0" Y="0" Width="370" Height="44" TabSkip="no" Text="!(loc.InstallDirDlgBannerBitmap)" />
    <Control Id="BannerLine" Type="Line" X="0" Y="44" Width="370" Height="0" />
    <Control Id="BottomLine" Type="Line" X="0" Y="234" Width="370" Height="0" />
    <Control Id="DSDescription" Type="Text" X="20" Y="60" Width="250" Height="13" NoPrefix="yes" Text="Enter the port that the Data Storage Service should run on" />
    <Control Id="DSPort" Type="Text" X="20" Y="80" Width="20" Height="13" NoPrefix="yes" Text="Port:" />
    <Control Id="DSText" Type="MaskedEdit" Text="#####" X="45" Y="78" Width="70" Height="14" Property="DataStoragePort" />
  </Dialog>

点击下一个按钮的处理如下所示:

      <Publish Dialog="DataStoragePortConfig" Control="Back" Event="NewDialog" Value="CustomizeDlg">1</Publish>
  <Publish Dialog="DataStoragePortConfig" Control="Next" Event="NewDialog" Value="VerifyReadyDlg">1</Publish>

但是在下一次单击时我想确保属性DataStoragePort不是空字符串。有什么建议? 问候 丹尼尔

1 个答案:

答案 0 :(得分:2)

空的蒙版编辑控件将其属性设置为带有空格的模板字符串,而不是“#”和“?”。例如,如果“Text”设置为“#####”,则空值为

"     "
如果“Text”设置为“### - ###”,则空值为
"   -   "

在您的情况下,您可以使用此条件:

DataStoragePort <> "     "