我想顯示一個MessageBox,提醒用戶該進程已完成,並對該進程的每個階段花費多長時間進行細分。我想要顯示格式正確的文本,但MessageBox類的默認字體不是單寬度。據我所知,沒有辦法指定文本顯示的字體。C#格式化MessageBox
有沒有可用於此目的的開箱即用圖書館,或者我是否必須自己寫一個圖書館?
我想顯示一個MessageBox,提醒用戶該進程已完成,並對該進程的每個階段花費多長時間進行細分。我想要顯示格式正確的文本,但MessageBox類的默認字體不是單寬度。據我所知,沒有辦法指定文本顯示的字體。C#格式化MessageBox
有沒有可用於此目的的開箱即用圖書館,或者我是否必須自己寫一個圖書館?
任何不是僅僅創建帶有等寬字體的文本框/標籤的Form
,然後致電Form.ShowDialog
?聽起來像一個單獨的圖書館,這對我來說會過度。
是的,這是我想到的解決方案。我認爲這將是一個普遍的情況,並且驚訝地發現沒有辦法用'MessageBox'來完成它,所以我希望我只是錯過了一些東西。謝謝。 – 2011-03-24 15:14:20
@ T.K .:我可能是錯的,但我認爲'MessageBox.Show'只是調用Win32消息框,我懷疑它沒有這種功能。 – 2011-03-24 15:16:36
使用表單的一大優勢是,您可以將文本複製到剪貼板。例如。使用只讀文本框向用戶顯示錯誤消息;看起來像一個標籤,但可以複製。 – 2014-08-06 03:10:55
聽起來像是你可能只是想在那裏下降的新形式和使用一些標籤..
我特別喜歡Jon Skeets的評論,因爲他特別提到使用ShowDialog()來調出表單。這樣,您可以設置DialogResult表單屬性,並且ShowDialog()調用將阻止執行,直到關閉對話框並返回DialogResult。 – 2011-03-24 15:06:33
根據記錄,其實這是可能的,消息框()擴展卡。例如:
private void button1_Click(object sender, EventArgs e) {
MessageBox.Show(
"hello\tworld\r\n" +
"second\tline");
}
如果字寬開始接近製表符寬度,這並不是非常值得信賴。你仍然應該更喜歡一個ListView的小幫手窗體。
這是一個有用的答案。我想在MessageBox中使用選項卡。謝謝。 – MikeMalter 2011-08-06 00:31:24
我剛寫了一個文件替換MessageBox的可變字體。你可以在這裏下載並使用它像一個標準的MessageBox:
http://www.codeproject.com/Articles/601900/FlexibleMessageBox-A-flexible-replacement-for-the
問候,約爾格
我敢肯定有已經寫庫,但它不會花費太多自己寫一個。 – 2011-03-24 14:57:58
我在其中一個項目中遇到了同樣的問題,其中我必須顯示更大的字體大小。爲此,我創建了自己的自定義消息框。檢查此鏈接以供參考。 http://www.codeproject.com/KB/cs/A_Custom_Message_Box.aspx – reggie 2011-03-24 15:00:13