2012-02-15 48 views
1

ListBox表中的值字段具有String [64]類型。有沒有可能擴大這個64個字符的限制?我需要在那裏存儲一些目錄路徑。Wix:ListBox值限制

回答

1

在WiX中可能(從未嘗試過)覆蓋ListBox表的默認模式。我在InstallShield知道我只是去直接編輯器並調整它。 WiX有一個用於構建MSI的模板模式,您可以使用Table元素重新定義它。或者它可能只是給你一個錯誤消息,說你正在定義一個衆所周知的表格。

但是,如果超過64個字符,我不確定在ListBox控件中是否會有任何副作用。我在MSI SDK中沒有看到什麼是允許的,所以我猜你的milage可能會有所不同。

這是一個你可能會喜歡的技巧。它被稱爲邪惡的雙胞胎對話技巧。在MSI中看到一個錯誤,即UI元素不能很好地刷新,這個技巧可以解決這個問題。考慮這個:

Dialog1與列表框關聯到屬性TESTPROP和項目一個值1和兩個值2. 顯示[TESTPROP]的文本標籤。

啓動對話框後,單擊列表框中的一行後文本標籤爲空。點擊向後和突然它有1和2的預期文本。

現在創建此對話框(Dialog2)的克隆,並將控件事件放在對話框1的列表框上,說NewDialog對話框2條件= 1並把一個在對話框2的列表框中顯示NewDialog Dialog1條件= 1的控件事件

現在,當你運行它時,屏幕刷新(雖然有一個醜陋的閃爍大)但看起來它是相同的對話框只有它真的是邪惡的雙胞胎正在轉換的對話框,以便數據正確刷新。

現在額外信貸使用您的自定義操作,以做這樣的事情

ListBox中第1個文本C:\臨...富\鮑勃值LISTBOXDIRPROP1 ListBox中第2項文本C:\臨...富\ ED值LISTBOXDIRPROP2

物業LISTBOXDIRPROP1 = C:\ Program Files文件\富\鮑勃 物業LISTBOXDIRPROP2 = C:\ Program Files文件\富\埃德

然後設定爲textLabel顯示[TESTPROP]。這告訴它尊重財產價值的價值。換句話說,TESTPRO = LISTBOXDIRPROP1 = C:\ Proggram Files \ Foo \ Bob

這個技巧可以讓你顯示符合64字符約束的行,但當用戶選擇它時會給出附加信息。

+0

謝謝。我已經知道控件刷新問題和雙對話框解決方案並使用它。 – 2012-02-16 08:35:35

+0

使用CustomTable的解決方案無法使用。 Wis只是忽略我的自定義ListBox表並使用String [64]值類型創建默認的ListBox表。 – 2012-02-16 10:08:11

+0

在構建MSI後,嘗試使用Orca編輯架構並查看其行爲。我懷疑64是限制,你必須做我提到的文本標籤技巧。 – 2012-02-16 12:19:57