いくつかの\n
を含むstring(generatedCode
)を使用して、使用しているtextBoxに改行を入力するプログラムを開発しています(textBox1.Text = generatedCode
)、しかし、私がプログラムを実行しているとき、その行を壊す代わりに、正方形が見えます。
TextBoxのMultiline
値をTrue
に設定したことを思い出してください。
\ 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つdoesはEnvironment.NewLine
を使用しますが、MSDNでひどく間違った例を今までに見たことがあります。
理想的な世界では、1つの行セパレーターしかありません。2番目に優れた世界であっても、どの状況でも、どの行セパレーターが予期していたかを明確に定義します...
\ nを使用すると見た目が簡単になるため(特にフォーマット時)、ソース文字列の作成方法を制御できないこともあります。使用するのがベストプラクティスだと思います。TextBox1.Text = str.Replace("\r\n", "\n").Replace("\n", Environment.NewLine);
通常、\r\n
を使用すると、テキストボックスに改行が表示されます。 \n
を\r\n
に置き換えてみてください。\r\n
と\n
を混在させないように注意してください
キャリッジリターン(\ r)を追加すると、機能します。
TextBox1.Text = "First line\r\nSecond line";