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

s = "おはよう。" + vbCrLf + "こんにちは。" + vbCrLf + "さようなら。"
Console.WriteLine(s)

s = "おはよう。" + Environment.NewLine + "こんにちは。" + _
    Environment.NewLine + "さようなら。"
Console.WriteLine(s)

'キャリッジリターンのANSIコードは13、ラインフィードは10なので、
'Chr関数を使って次のようにもできる
s = "おはよう。" + Chr(13) + Chr(10) + "こんにちは。" + _
    Chr(13) + Chr(10) + "さようなら。"
Console.WriteLine(s)
C#
コードを隠すコードを選択
//おはよう。(改行)こんにちは。(改行)さようなら。
//という文字列を作成する

string s;

s= "おはよう。\r\nこんにちは。\r\nさようなら。";
Console.WriteLine(s);

s = "おはよう。" + Environment.NewLine + "こんにちは。"
    + Environment.NewLine + "さようなら。";
Console.WriteLine(s);

//C#では次のような書き方も出来ます
s = @"おはよう。
こんにちは。
さようなら。";
Console.WriteLine(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 説明を補充。