C#でTextBoxで改行


Windows FormのTextBoxに複数行のテキストを表示させるには、Multilineプロパティをtrueに設定する必要があります.これはよく知られていますが、コードでTextプロパティに複数行のテキストを設定する場合は、いくつかのトラブルが発生する可能性があります:)
改行文字""を含む文字列にText属性を直接支払うことを考えがちです.
aTextBox.Text = "First Line
Second Line
Third Line";

 
しかし、実際に実行していると、改行されないことに気づき、「First LineSecond LineThirdLine」という結果が表示されます.
実は主にTextBoxがWindows上で実行されているからです.Windowsで表示できる改行は、carrage return&line feed、すなわち「r」の2文字でなければなりません.「」だけでWindowsで改行として表示できない場合は、Linux/Unixなど他のオペレーティングシステムとは異なります.だから上は「」を「r」に置き換えればいいのです.
実は問題はまだよく解決されていません.「r」でWindowsの要求を満たすことができますが、他のプラットフォームであればどうしますか.改行効果が様々なプラットフォームで正常に表示されるようにEnvironment.NewLine.異なるプラットフォームで正しい改行文字が返されることを保証し、Windowsではrであり、Linux(Mono)であるはずです.上のコードは次のように書くべきです.
     aTextBox.Text = "First Line" + 
     Environment.NewLine + "Second Line" + 
     Environment.NewLine + "Third Line";

 
また、verbatim string literal(@から始まる文字列)の形式で改行文字を入力することもできます.
aTextBox.Text = @"First Line 
Second Line
Third Line";