標籤:des winform blog http 使用 os strong io
要讓一個Windows Form的TextBox顯示多行文本就得把它的Multiline屬性設定為true。 要讓TextBox裡面的文本換行大家往往會想到直接在要換行的地方加個轉義的分行符號"\n":
[csharp] view plaincopyprint?
- this.textBoxDescription.Text = "操作說明\nESC\t最小化\nALT+F4\t退出\nShift+F6\t設定訪問地址";
this.textBoxDescription.Text = "操作說明\nESC\t最小化\nALT+F4\t退出\nShift+F6\t設定訪問地址";
可是實際啟動並執行時候你卻發現它始終不會換行,顯示的結果為
[csharp] view plaincopyprint?
- 操作說明ESC 最小化ALT+F4 退出Shift+F6 設定訪問地址
操作說明ESC 最小化ALT+F4 退出Shift+F6 設定訪問地址
其實主要是因為TextBox運行在Windows上。Windows能夠顯示的換行必須由兩個字元組成:carriage return & line feed,也就是必須是"\r\n"。所以如果把"\n"替換成"\r\n"就可以了。
[csharp] view plaincopyprint?
- this.textBoxDescription.Text = "操作說明\r\nESC\t最小化\r\nALT+F4\t退出\r\nShift+F6\t設定訪問地址";
this.textBoxDescription.Text = "操作說明\r\nESC\t最小化\r\nALT+F4\t退出\r\nShift+F6\t設定訪問地址";
顯示的結果為
[csharp] view plaincopyprint?
- 操作說明
- ESC 最小化
- ALT+F4 退出
- Shift+F6 設定訪問地址
操作說明ESC 最小化ALT+F4 退出Shift+F6 設定訪問地址
也可以使用Environment.NewLine,所以上面的代碼可以寫成:
[csharp] view plaincopyprint?
- this.textBoxDescription.Text = "操作說明" + Environment.NewLine + "ESC\t最小化" + Environment.NewLine + "ALT+F4\t退出" + Environment.NewLine + "Shift+F6\t設定訪問地址";
this.textBoxDescription.Text = "操作說明" + Environment.NewLine + "ESC\t最小化" + Environment.NewLine + "ALT+F4\t退出" + Environment.NewLine + "Shift+F6\t設定訪問地址";
另外你也可以用verbatim string literal(用@開始的字串)的形式來輸入分行符號:
[csharp] view plaincopyprint?
- this.textBoxDescription.Text = @"操作說明
- ESC 最小化
- ALT+F4 退出
- Shift+F6 設定訪問地址"
this.textBoxDescription.Text = @"操作說明ESC 最小化ALT+F4 退出Shift+F6 設定訪問地址"
這種形式在代碼中看起來很直觀,但是如果代碼編輯器是在Windows下啟動並執行,仍然相當於輸入了\r\n。
Environment是一個靜態類,位於System名稱空間下,提供對當前程式的運行環境和平台的相關資訊的訪問。它提供了很多有用的靜態屬性和方法:
具體的可以參考MSDN: http://msdn.microsoft.com/en-us/library/8y536wdx(vs.71).aspx