動態生成WizardPage

2021-09-05 16:32:58 字數 577 閱讀 2072

eclipse的wizard是由一系列wizardpage組成的。預設情況下,wizarddialog在初始化的時候就會呼叫每個wizardpage的createcontrol()方法來布局這些wizardpage,這是為了方便決定wizarddialog視窗的大小。但如果某個wizardpage裡的控制項是需要動態生成的,例如,使用者在page1裡輸入乙個整數n,page2裡要根據這個整數生成n個文字框,由於page2的createcontrol()只有一次被呼叫的機會,並且在得到n之前就被wizarddialog呼叫過了,集中布局的方式就為生成page2的介面帶來了困難。

和問題的描述比起來,解決的方法簡單很多,只要覆蓋wizard的createpagecontrols()方法讓它什麼都不要做就可以了:

@override

public

void

createpagecontrols(composite pagecontainer)

理論上講,這樣做帶來的問題將是wizarddialog的大小不一定能容納所有的控制項,但在實際應用中我還沒遇到,只要動態生成的控制項不要太多,或者使用滾動的方式容納即可。

參考:

動態生成CS檔案(動態生成C 類)

1.codetypedeclaration 可用於表示宣告類 結構 介面或列舉的 官方傳送門 2.codememberfield 表示某種型別的字段的宣告 官方傳送門 3.codedomprovider 可用於建立和檢索 生成器和 編譯器的例項。生成器可用於以特定的語言生成 而 編譯器可用於將 編譯...

動態生成Table DataSet

querymsmqlist querymsmq new querymsmqlist private coreexchange listquerylist querymsmq.mreceive dataset dsqueuemsmq new dataset datatable dsqueuetable...

動態生成列

create procedure sp createtable tname varchar 100 colscript varchar 1000 colnum int coltype varchar 100 as begin declare s varchar 8000 i int set s cr...