richTextBox1.Text
次のコードのみを使用して(テキスト全体を)1行で保存しようとしているため、おそらくこれが発生します
StreamWriter sw = File.CreateText(saveFileDialog2.FileName);
sw.WriteLine(richTextBox1.Text);
sw.Flush();
sw.Close();
sw.WriteLine()
の特定の行番号で使用してrichTextBox1
から、別の行に移動することをお勧めします。
例
for (int i = 0; i < richTextBox1.Lines.Length; i++)
{
sw.WriteLine(richTextBox1.Lines[i]);
}
sw.Flush();
sw.Close();
別の解決策
RichTextBox
特定のエンコーディングでファイルを保存するための組み込み関数がすでにあります。RichTextBox.SaveFile()
この目的で使用できます。
例
RichTextBox.SaveFile(string path, RichTextBoxStreamType);
コード内のどこpath
を表しsaveFileDialog2.FileName
ますか。の場合、色/フォント/保護/インデントなどのRTFを使用しない限り、RichTextBoxStreamType
設定するのが最適です。RichTextBoxStreamType.PlainText
次に、次の方法を使用してファイルを再度読み取ることができます
RichTextBox.LoadFile(string path, RichTextBoxStreamType);
注意:ファイルがRTFになく、RTF(RichTextBox.LoadFile(string path, RichTextBoxStreamType.RichText);
)で読み込もうとすると、フォーマットエラーが発生する場合があります。この場合、例外をキャッチして、プレーンまたはUnicodeエンコーディングでファイルを読み取る必要があります。
例
RichTextBox _RichTextBox = new RichTextBox();
try
{
_RichTextBox.LoadFile(@"D:\Resources\text.txt", RichTextBoxStreamType.RichText);
}
catch (Exception EX)
{
if (EX.Message.ToLower().Contains("format is not valid"))
{
_RichTextBox.LoadFile(@"D:\Resources\text.txt", RichTextBoxStreamType.PlainText);
}
}
ありがとう、
これがお役に立てば幸いです:)