DOBON.NET プログラミング道: .NET Framework, VB.NET, C#, Visual Basic, Visual Studio, インストーラ, ...

文字列の途中で改行する

文字列のある位置で改行するということは、その位置に改行文字列を挿入するということです。

改行文字列は、Environment.NewLineプロパティによって取得できます。NewLineプロパティは実行している環境(OS)に応じた改行文字列を返します。NewLineプロパティはWindowsでは「キャリッジリターン + ラインフィード」を返しますので、VB.NETでは「vbCrLf」(または、ControlChars.CrLf)、C#では「"\r\n"」と同じになります。

補足:VB.NETでは、Environment.NewLineプロパティの代わりに、ControlChars.NewLineフィールドを使うこともできます。

以下に「おはよう。(改行)こんにちは。(改行)さようなら。」という文字列を作成する方法を幾つか示します。

VB.NET
コードを隠すコードを選択
'おはよう。(改行)こんにちは。(改行)さようなら。
'という文字列を作成する
Dim s As String

'Environment.NewLineを使う
s = "おはよう。" & Environment.NewLine & "こんにちは。" & _
    Environment.NewLine & "さようなら。"

'vbCrLfを使う
s = "おはよう。" & vbCrLf & "こんにちは。" & vbCrLf & "さようなら。"

'キャリッジリターンのANSIコードは13、ラインフィードは10なので、
' Chr関数を使って次のようにもできる
s = "おはよう。" & Chr(13) & Chr(10) & "こんにちは。" & _
    Chr(13) & Chr(10) & "さようなら。"
C#
コードを隠すコードを選択
string s;

//Environment.NewLineを使う
s = "おはよう。" + Environment.NewLine + "こんにちは。"
    + Environment.NewLine + "さようなら。";

//"\r\n"を使う
s = "おはよう。\r\nこんにちは。\r\nさようなら。";

//C#では次のような書き方もできる
s = @"おはよう。
こんにちは。
さようなら。";

上の例の「s」の内容はすべて

おはよう。
こんにちは。
さようなら。

になります。

補足:コンソールへの出力や、Label、Buttonコントロールなどでは、ラインフィード(VB.NETでは vbLf または ControlChars.Lf 、C#では '\n' )のみでも改行できます。MessageBox.Showメソッドによるメッセージの表示や、ToolTipコントロールなどでは、ラインフィードのみ、さらにはキャリッジリターン(VB.NETでは vbCr または ControlChars.Cr 、C#では '\r' )のみでも改行できます。
補足:TextBoxコントロールでは「キャリッジリターン + ラインフィード」でしか改行できませんが、RichTextBoxコントロールでは、キャリッジリターンのみ、ラインフィードのみでも改行できます。ただしRichTextBoxのTextプロパティが返す文字列では、改行はラインフィードのみになります。
  • 履歴:
  • 2010/8/28 説明を補充。