如何使用兩個按鈕驗證和取消msgbox?帶有驗證和取消按鈕的消息框
回答
不幸的是,標準的Win32 MessageBox
function不支持帶自定義標籤的按鈕。而且由於VB.NET MsgBox
函數是該本地函數的一個薄包裝器,所以它也不支持它們。預定義的值就是你所能得到的,這意味着你可以做的最好的事情就像是「確定」和「取消」,文本解釋說「確定」意味着「繼續進行確認」。
值得注意的是,對於年的,這是Windows風格指南推薦的做法。實際上,它看起來像it still is。特別要注意的例外以下一般規則:
使用積極的承諾是到主指令具體答覆按鈕,而不是普通的標籤,如OK或是/否。用戶應該可以通過單獨閱讀按鈕文本來理解選項。
例外:
- 使用關閉的沒有設置,如信息對話框的對話框。從不使用關閉有設置的對話框。
- 當「特定」響應仍爲通用時(如保存,選擇或選擇),請使用「確定」。
- 更改特定設置或設置集合時使用確定。
- 對於沒有主指令的傳統對話框,可以使用通用標籤,如OK。通常,這些對話框並非設計用於執行特定任務,從而阻止了更具體的響應。
- 某些任務需要更多思考和仔細閱讀,以便用戶做出明智的決定。確認通常是這種情況。 在這種情況下,您可以故意使用通用提交按鈕標籤來強制用戶閱讀主要說明並防止倉促做出決定。
Windows Vista中引入了旨在取代老化,不可能以進行配置MessageBox
—它被稱爲TaskDialog
一個新的API。如果您運行的是Windows Vista或7,那麼您無疑會在整個Windows Shell中看到此對話框。它實際上允許您爲每個按鈕指定自定義名稱,並提供一系列其他自定義選項。但是這種控制並不是免費的。有兩個問題與TaskDialog
功能:
.NET框架不包括它的包裝開箱。您需要編寫自己的簡單包裝器,或者下載包含這種包裝器的Windows API Code Pack。但是這增加了對代碼—的額外依賴性,您必須決定是否值得。
由於API僅在Vista中引入,這意味着程序只能在Vista或更高版本上運行時使用它。如果您仍然需要定位Windows XP(或2000),那麼您運氣不好。顯示
TaskDialog
的代碼將失敗,您需要包含後備例程以顯示標準MessageBox
。當然,在那些舊版操作系統上,您無法定製按鈕標籤,從而使您立即回到起點位置。同樣,只有您可以決定這是否是您的應用程序和/或部署方案的重要關注點。
另一種選擇,由幾代VB程序員使用,是讓你自己的小型MessageBox
風格的表單。要爲圖標/圖像,某些標題文本以及所需的所有按鈕設置一個簡單的表單並不難。由於您已經創建了整個表單,所以您可以根據自己的意願自由地從代碼中進行自定義。
如果你絕對在Vista之前的Windows版本中需要此功能,那麼創建您自己的消息框表單就是您唯一的選擇。否則,我高度建議您利用新的TaskDialog
API。在您的應用程序中這樣做可以促進用戶可能在其計算機上安裝的其他應用程序的一致性,甚至可以與Windows本身一起安裝。很難確保您自己的自定義消息框表單正確地獲得小小的觸摸,例如根據其長度和用戶的屏幕大小自動包裝標籤文本。根據您的對話框是否包含「取消」按鈕,在標題欄中顯示/隱藏「X」關閉按鈕。還有一個令人難以置信的數量的標準Windows MessageBox
/TaskDialog
爲您免費提供,而無需舉手。這只是重申一般原則:當你不必絕對必須這樣做時,不要重新發明輪子。
一個很好的折衷辦法可能是使用像this TaskDialog
wrapper/emulator這樣的東西。在Vista和更高版本中,原生TaskDialog
API可用,它會自動調用該函數。否則,它會使用標準格式並嘗試模擬原生的API的行爲。我已經寫了一個類似的自定義類供我自己使用,但我從未在網上發佈它。
- 1. 僅限帶取消按鈕的消息框
- 2. jQuery驗證,MVC和取消按鈕
- 3. 帶文本按鈕的WinForms消息框
- 4. 按鈕取消導致驗證...我不想驗證取消按鈕
- 5. 帶有fileinfo驗證的錯誤消息
- 6. 單選按鈕驗證錯誤消息
- 7. 使用按鈕驗證ng消息
- 8. 不同的驗證消息和驗證摘要消息
- 9. 停止jQuery驗證取消按鈕
- 10. c中沒有按鈕的消息框#
- 11. 帶有「單選按鈕」和取消按鈕的Android微調器
- 12. 帶好和取消按鈕的QDialog
- 13. 驗證和消息加入Spring框架
- 14. 訪問消息框按鈕
- 15. 帶有Immediate =「true」的按鈕清除當前顯示的驗證消息
- 16. 驗證消息
- 17. 驗證消息
- 18. 如何顯示帶有兩個按鈕的消息框?
- 19. 帶驗證消息的表單設計
- 20. 帶有驗證和成功消息的PHP表格
- 21. 當用戶選擇角度取消按鈕時刪除驗證消息
- 22. 帶按鈕的Android Eclipse彈出消息
- 23. JavaScript提示框:如何驗證取消按鈕(null)
- 24. C#Winform文本框驗證中斷取消按鈕
- 25. ASP.Net驗證和JavaScript更新和取消按鈕
- 26. 消息框,同時點擊取消按鈕
- 27. 按鈕取消不顯示在消息框中
- 28. Inno Setup單擊取消按鈕時顯示消息框
- 29. 帶有SDL的對話框/消息框?
- 30. 在FormClosing方法中處理取消按鈕是/否/取消消息框