私はWinForms RichTextBoxを使用しています。リッチテキストボックスがフォーム上にある場合、\r\n
は\n
に変換されます。ここにテストがあります:RichTextBox改行の変換?
私は2つのリッチテキストボックスを持っています。一つは、フォーム上に配置されrichTextBox1
、次のとおりです。
this.richTextBox1 = new System.Windows.Forms.RichTextBox();
this.SuspendLayout();
//
// richTextBox1
//
this.richTextBox1.Location = new System.Drawing.Point(37, 12);
this.richTextBox1.Name = "richTextBox1";
this.richTextBox1.Size = new System.Drawing.Size(100, 96);
this.richTextBox1.TabIndex = 0;
this.richTextBox1.Text = "";
他のは、私がその場で作成rtb
、です。
var rtb = new RichTextBox();
string enl = "Cheese" + Environment.NewLine + "Whiz";
rtb.Text = enl;
string ncr = rtb.Text;
MessageBox.Show(string.Format("{0}{1}{2}{3}---{4}{5}{6}{7}{8}{9}",
enl.Replace("\n", "\\n").Replace("\r", "\\r"), Environment.NewLine,
ncr.Replace("\n", "\\n").Replace("\r", "\\r"), Environment.NewLine,
Environment.NewLine,
(enl == ncr), Environment.NewLine,
enl.Contains(Environment.NewLine), Environment.NewLine,
ncr.Contains(Environment.NewLine)));
/*
Cheese\r\nWhiz
Cheese\r\nWhiz
---
True
True
True
*/
richTextBox1.Text = enl;
string ncr2 = richTextBox1.Text;
MessageBox.Show(string.Format("{0}{1}{2}{3}---{4}{5}{6}{7}{8}{9}",
enl.Replace("\n", "\\n").Replace("\r", "\\r"), Environment.NewLine,
ncr2.Replace("\n", "\\n").Replace("\r", "\\r"), Environment.NewLine,
Environment.NewLine,
(enl == ncr2), Environment.NewLine,
enl.Contains(Environment.NewLine), Environment.NewLine,
ncr2.Contains(Environment.NewLine)));
/*
Cheese\r\nWhiz
Cheese\nWhiz
---
False
True
False
*/
リッチテキストボックスがいくつかの奇妙な挙動を示すことのようです:私は(フォームのLoadイベントで)このコードを実行すると。私が作成したボックスに\r\n
を含むテキストを置くと、それは同じままです(まだ\r\n
が入っています)。しかし、\r\n
を含むテキストをフォームのボックスに入れると、\r\n
は\n
に変わります。
私の質問:この動作の理由はありますか(\r\n
- >\n
)?この動作はどこかに記録されていますか?私はそれが常にこの方法であると思うことができますか?
私はここに掲載する場合は、私は別のプロジェクトで私のいずれかの形式で持ってきたので、私はこの問題に関して、任意の入力をいただければと思い、問題の底に取得で私の試みです。
しかし、私はちょうどそれを回避ハッキング、前にこれを見て覚えている: - /答え – GreyCloud