2011-03-24 63 views
8

我想顯示一個MessageBox,提醒用戶該進程已完成,並對該進程的每個階段花費多長時間進行細分。我想要顯示格式正確的文本,但MessageBox類的默認字體不是單寬度。據我所知,沒有辦法指定文本顯示的字體。C#格式化MessageBox

有沒有可用於此目的的開箱即用圖書館,或者我是否必須自己寫一個圖書館?

+0

我敢肯定有已經寫庫,但它不會花費太多自己寫一個。 – 2011-03-24 14:57:58

+0

我在其中一個項目中遇到了同樣的問題,其中我必須顯示更大的字體大小。爲此,我創建了自己的自定義消息框。檢查此鏈接以供參考。 http://www.codeproject.com/KB/cs/A_Custom_Message_Box.aspx – reggie 2011-03-24 15:00:13

回答

12

任何不是僅僅創建帶有等寬字體的文本框/標籤的Form,然後致電Form.ShowDialog?聽起來像一個單獨的圖書館,這對我來說會過度。

+0

是的,這是我想到的解決方案。我認爲這將是一個普遍的情況,並且驚訝地發現沒有辦法用'MessageBox'來完成它,所以我希望我只是錯過了一些東西。謝謝。 – 2011-03-24 15:14:20

+1

@ T.K .:我可能是錯的,但我認爲'MessageBox.Show'只是調用Win32消息框,我懷疑它沒有這種功能。 – 2011-03-24 15:16:36

+0

使用表單的一大優勢是,您可以將文本複製到剪貼板。例如。使用只讀文本框向用戶顯示錯誤消息;看起來像一個標籤,但可以複製。 – 2014-08-06 03:10:55

2

聽起來像是你可能只是想在那裏下降的新形式和使用一些標籤..

+0

我特別喜歡Jon Skeets的評論,因爲他特別提到使用ShowDialog()來調出表單。這樣,您可以設置DialogResult表單屬性,並且ShowDialog()調用將阻止執行,直到關閉對話框並返回DialogResult。 – 2011-03-24 15:06:33

9

根據記錄,其實這是可能的,消息框()擴展卡。例如:

private void button1_Click(object sender, EventArgs e) { 
     MessageBox.Show(
      "hello\tworld\r\n" + 
      "second\tline"); 
    } 

如果字寬開始接近製表符寬度,這並不是非常值得信賴。你仍然應該更喜歡一個ListView的小幫手窗體。

+0

這是一個有用的答案。我想在MessageBox中使用選項卡。謝謝。 – MikeMalter 2011-08-06 00:31:24