回答
您可以使用一組Panel
對象,除第一個面板之外的所有對象的Visible
屬性設置爲false
。
存儲當前面板的索引,並具有適當更改該索引的「下一步」和「上一步」按鈕。當此索引更改時,根據需要使適當的面板可見/不可見(只有當前面板應該在給定時間可見)。
您還可以在某些/所有面板上處理IsVisibleChanged
事件,以觸發用戶導航到特定面板時發生的某些行爲。
這是一個很相關的話題;我在兩年前建立了一個相當全面的Wizard控件,用於在家中使用,我記得花了幾個星期才完成正確的工作。
的基本要素是:
- 部首面板
- 內容面板
- Action面板
- 邊欄
兩個內容面板和動作面板利用ParentControlDesigner
的至啓用刪除控件。內容面板不會讓你直接放在它上面,而是讓你放在活動頁面(子面板)上。操作面板還有一個「默認」模式,它在其中創建標準4個按鈕(prev,next,cancel,finish)。我主要實現了自定義模式,因此我可以使用它,即使用DevEx按鈕而不是標準的Winforms按鈕。
標題基本上是靜態的,它是一個PictureBox
和Label
,圖像,文本和字體可自定義。 (默認情況下,文本與頁面標題相同,字體是添加了粗體風格的控件字體)。
再就是由API暴露一組數據結構的:
- 步驟(與名稱,標題等,還指定是否應該在側邊欄被鏈接)
- 工作流程(即你在哪裏下一個根據你的選擇)
- 驗證事件(同步和異步)
- 操作(被前運行/換頁,點擊按鈕等)
- 過渡短跑運動員後拍攝我做了這些爲了好玩,用戶喜歡他們
我把這些步驟的自定義集合編輯器放在一起,反過來創建如上所述的內容面板的子面板。每個面板只是直接添加到控件集合中,但根據活動的步驟屬性,一次只能看到一個面板。我記得對接似乎沒有正常工作,所以我不得不重寫所有的resize方法。我從來沒有想過創建一個智能標籤來輕鬆地在頁面之間翻轉,但是可以在屬性網格上選擇活動頁面(或頁面索引)。
然後,我還必須包括一大堆鉤子來在單個頁面上插入任何自定義邏輯。很難在沒有發佈所有代碼的情況下真正瞭解更多細節。
正確設計和測試是非常耗時的,但我不記得使用任何whizbang設計技巧,只能從各個UI元素的角度(如運行時和運行時設計時間)和數據結構以及它們如何相互作用。
請記住所有這些都是爲了創建一個可重用的嚮導組件,因爲我們需要爲特定的應用程序開發其中約10個(並且它對於其他項目也派上用場)。如果我只需要一個快速的嚮導,就可能不會解決所有這些問題,我只會做你正在做的事情 - 使用一個選項卡控件和幾個流程面板。或者更好的是,我現在可以使用許多Winforms庫中的現成嚮導控件,如DX庫。
- 1. Fiddler是Internet過濾器的良好構建模塊嗎?
- 2. 想了解良好的面向對象模式
- 3. 什麼是WPF中良好體系結構的快速模式?
- 4. 這種情況下的良好構建模式是什麼? (分區工具)
- 5. .Net設計模式的良好來源
- 6. 良好的雲許可證模式?
- 7. 如何創建格式良好的PDF?
- 8. 良好的登錄結構
- 9. 創建支持實習的對象的良好模式?
- 10. 良好的導軌插件
- 11. 建議使用javaScript驗證電子郵件的良好模式?
- 12. 構建失敗,但在本地構建良好
- 13. 良好的REST API建議
- 14. 良好的連接建立
- 15. S表達式的良好形式/模式
- 16. 僞向後構建器模式?
- 17. 是否有良好的設計/架構模式用於構建移動服務器同步功能?
- 18. 基於類的「任務」模塊的良好模式?
- 19. 引導模式:構建動態內容
- 20. 導軌 - 構建嵌套模式
- 21. 如何將這個結構不良的HTML變成格式良好的XHTML?
- 22. 良好的編碼習慣/模塊化的HTML構造
- 23. 良好的面向對象設計
- 24. CombinationReader和react-redux中的良好結構
- 25. 良好的移動和桌面架構
- 26. 良好的構造函數設計
- 27. C++的良好重構支持
- 28. 良好的架構MVC,API調用
- 29. 文件夾結構 - 良好的做法
- 30. 良好的結構文檔tcp_info
索倫使用了一個'RingControl'設備作爲嚮導,但我認爲它有點多。 – FrustratedWithFormsDesigner 2010-03-19 21:04:52
@FrustratedWithFormsDesigner:我在哪裏可以得到這樣的控制? – Luiscencio 2010-03-19 23:00:59