web-dev-qa-db-ja.com

TextBoxで\ nを使用する方法

いくつかの\nを含むstring(generatedCode)を使用して、使用しているtextBoxに改行を入力するプログラムを開発しています(textBox1.Text = generatedCode )、しかし、私がプログラムを実行しているとき、その行を壊す代わりに、正方形が見えます。

TextBoxのMultiline値をTrueに設定したことを思い出してください。

24
Nathan Campos

\ nを\ r\nに置き換えます-これがWindowsコントロールが改行を表す方法です(ただし、下部の注を参照)。

textBox1.Text = generatedCode.Replace("\n", "\r\n");

または

textBox1.Text = generatedCode.Replace("\n", Environment.NewLine);

注:コメントで説明したように、あなたはmayEnvironment.NewLineを使用したいと考えています。ただし、明確ではありません。WindowsフォームコントロールがWindowsで実行されていない場合に、Windowsフォームコントロールで使用する必要がある行区切り文字が明確に定義されていません。彼らはプラットフォームのデフォルトを使用するべきですか、それともWindowsのそれを使用するべきですか(Windows GUIコントロールのポートであるため)? MSDNの例の1つdoesEnvironment.NewLineを使用しますが、MSDNでひどく間違った例を今までに見たことがあります。

理想的な世界では、1つの行セパレーターしかありません。2番目に優れた世界であっても、どの状況でも、どの行セパレーターが予期していたかを明確に定義します...

49
Jon Skeet

\ nを使用すると見た目が簡単になるため(特にフォーマット時)、ソース文字列の作成方法を制御できないこともあります。使用するのがベストプラクティスだと思います。
TextBox1.Text = str.Replace("\r\n", "\n").Replace("\n", Environment.NewLine);

9
dancer42

通常、\r\nを使用すると、テキストボックスに改行が表示されます。 \n\r\nに置き換えてみてください。\r\n\nを混在させないように注意してください

6
Bob

キャリッジリターン(\ r)を追加すると、機能します。

TextBox1.Text = "First line\r\nSecond line";
4
MakoCSH