我一直在尋找一個對話框的複選框「不要再給我看這個對話框」在C#中。尋找一個優雅的「不要再顯示我這個對話框」對話框在C#
我搜索了很多,但我找不到一個優雅的解決方案。
該對話框應該與原生MessageBox.Show類似,但用新的屬性值(bool值)返回給調用者。
感謝。
我一直在尋找一個對話框的複選框「不要再給我看這個對話框」在C#中。尋找一個優雅的「不要再顯示我這個對話框」對話框在C#
我搜索了很多,但我找不到一個優雅的解決方案。
該對話框應該與原生MessageBox.Show類似,但用新的屬性值(bool值)返回給調用者。
感謝。
Vista和Windows 7應用程序可以使用新的TaskDialog功能,它擴展了標準MessageBoxes以支持底部的複選框(以及各種其他好處,例如命令鏈接,自定義按鈕文本,頁腳等)。
不幸的是,從C#你需要做一些互操作訪問此。如果您只想讓高級TaskDialogs以Vista/Windows 7爲目標,請使用http://code.msdn.microsoft.com/WindowsAPICodePack中的WindowsAPICodePack,它可以爲您處理互操作複雜性。
如果您需要支持XP,有支持有一個WinForms在Vista/7的原生TaskDialogs回退爲XP這裏優良的包裝: http://www.codeproject.com/KB/vista/Vista_TaskDialog_Wrapper.aspx
你爲什麼不創建自己的。這是一個非常簡單的。只需從System.Windows.Forms.Form
課程中衍生出來,並將其模仿爲您想要的課程。
我不覺得會有現成的解決方案。爲了實現「不要再顯示我」,您需要將信息保存在dailog之外並創建用戶配置文件。
如果您的基礎架構堅持用戶配置文件存在,您可以簡單地創建類似於messagebox
類的類。但是,您不能從messagebox
派生。
它並不像我想的那麼簡單。 MessageBox有不同的按鈕選擇和圖標選擇,我也需要它們。如果我可以從MessageBox派生出來,它會非常好。但我們無法派生MessageBox,因爲沒有受保護的或公共的構造函數。 – 2010-11-25 07:21:26
@Peter Lee - 我在Java中遇到過類似的問題。標準庫提供了所有這些漂亮的標準外觀消息對話框,但只要想要自定義對話框,就會失去所有的標準寬度/高度,圖標資源,按鈕位置,按鈕寬度,窗口邊距等。不得不深入研究Java如何構造其對話框以確保我的自定義對話框遵循標準對話框外觀和感覺。這並不好玩,這讓我想要一些標準化的做法。至少在Visual Studio GUI設計器中內置了一些很好的默認設置。 – 2010-11-25 07:44:59
@Peter Lee:當然可以*複製標準`MessageBox`在自定義對話框中提供的所有可能樣式。這是更多的工作,但它是你可以反覆使用的東西。這個示例(重新創建一個Vista風格的TaskDialog,它在OS以前的版本中不可用)是一個很好的例子,你可以這樣做:http://www.codeproject.com/KB/vb/vdialog.aspx – 2010-11-25 08:20:12