2011-02-14 40 views
8

Dialog.wxs威克斯獲取用戶輸入

<UI> 
<Dialog Id="UserRegistrationDlg" ... > 
<Control Id="NameEdit" Type="Edit" X="45" Y="85" Width="220" Height="18" Property="NameValue" Text="{80}" /> 
</Dialog> 
<UI> 

在Product.wxs我創建了一個屬性

<Property Id="NameValueProperty" Value="NameValue" /> 

然後,如我明白,我必須使用[NameValueProperty]用於獲取值,但ID不起作用...怎麼了?

回答

4

您通常希望在這種情況下使用安全自定義屬性。這是一個屬於Public(即CAPS)並標記爲Secure的屬性。僅當需要默認值時才需要值。

<Property Id="MYPROPERTY" Secure="yes" /> 
+0

如果您需要的值從UI到InstallExecuteSequence通過這僅僅是必要的。非常依賴該物業如何使用。 – 2011-02-14 22:08:25

+0

因此,我爲什麼說'一般'。我認爲一般情況下,你將會對收集到的數據做一些事情,因此它很可能需要一個安全的定製屬性。 – 2011-02-14 22:15:29

5

詳細的日誌文件應該顯示對屬性的更改。在追蹤這些事情時非常有用。在這種情況下,您的示例代碼實際上是將名爲NameValue的屬性設置爲編輯框中的值。如果你想預設在編輯框中的值,那麼你會做這樣的事情:

<Property Id="NameValue" Value="Show this in the edit box" /> 

並引用你使用[NameValue]值。或者,你可以改變你的代碼:

<UI> 
    <Dialog Id="UserRegistrationDlg" ... > 
    <Control Id="NameEdit" Type="Edit" X="45" Y="85" Width="220" 
      Height="18" Property="NameValueProperty" Text="{80}" /> 
    <Dialog> 
<UI>