2009-10-09 29 views
4

我正在尋找一個體面的替代標準窗口是/否或是/否/取消MessageBox。替換是/否/取消MessageBox(C#)

我經常看到的方式,如濫用這些標準的對話框:「要以純文本格式保存回答YES或HTML回答NO保存」。顯然,文本應爲「另存爲:並且」按鈕應標記爲「文本」和「HTML」。這不是被問及的是/不是問題,儘管可以用這種方式表達,但閱讀和理解並不容易。

微軟沒有辦法改變按鈕上的文字。沒有快速/簡單的方式來從零開始構建替代品......正如上面提到的使用尷尬風格的應用程序數量所證明的那樣。

有沒有免費的C#更換對話框或消息框在那裏,讓你至少:
- 指定按鈕
的數量 - 指定文本顯示上的每個按鈕
- 指定默認按鈕

我看了,並且一直找不到。我只會自己構建一個,但是我對於全功能控件應該具有的所有行爲都不夠熟悉,因爲我只需要/使用/知道一個小子集。我不使用兩個示例:主題和國際化。我需要的東西,我的同事也將要使用。)

+0

當然,正確的方法是提出正確的問題:「你想將文檔保存爲純文本嗎?」 – EFraim

+2

但是,如果您回答「否」,是否意味着它被保存加密?不,需要更多的文本才能將它清楚地解釋爲是/否問題。 –

回答

6

退房在CodeProject Dissecting the MessageBox。該項目有點過時,但它幾乎正是你想要的,它不應該花太多時間來更新它。

+0

這確實看起來不錯。它包括我的同事可能需要或喜歡的一些「額外」。而且由於它的來源,它甚至可以定製/擴展。謝謝。 –

3

根據您的目標平臺上,一個task dialog可能是這樣做的一個很好的方式。在Windows API Code Pack中有一個用於任務對話框的.NET包裝器。然而,這些都只能在Windows Vista和上面,而不是在XP或2003

+0

謝謝,但我們現在肯定需要支持XP。但迴應可能會幫助其他人! –

2

坦率地說,它並不難,自己創建這樣一個消息框提供的,我們有這樣的事情,我們正在開發的當前應用程序的工作。

你需要的是一對的FlowLayout將自動對齊您創建的任何按鈕,按鈕。我們的API然後有類似的東西(參數字符串,DialogResult > []按鈕)

元組是一個助手類,它包含兩個值。該字符串是按鈕的文本,Dialogresult是我們的消息框在單擊具有所述文本的按鈕時返回的那個。

2

我同意弗蘭克。創建自己的通用表單來處理這個問題並不困難。沒有進入代碼,形式應做到以下幾點

1)有一個屬性來設置要顯示給用戶的消息。

2)有一個方法,用於將按鈕,以2個參數,一個用於按鈕文本,和一個用於對話結果

3)當顯示形式時,其應該在模態對話框模式,使得應用程序的其餘部分處於非活動狀態,直到單擊其中一個選項。

因此,要創建另存爲/不保存/取消,您可以在步驟2中添加3個按鈕,所有按鈕都帶有相應的按鈕文本和對話框結果。

使用Flow佈局,無論消息的大小或按鈕的數量如何,您都應該能夠正確顯示它。