Параграфы не сохраняются при сохранении текста из RichTextBox в формате txt - PullRequest
0 голосов
/ 21 января 2019

Текстовый редактор, над которым я работаю, правильно сохраняет свое содержимое при сохранении в формате RTF. Однако, если я сохраню в (обычный) txt, html, dvc и другие (простые) основанные на txt форматы, все параграфы пропадут. Например:

Это первый абзац

Это второй абзац

Это третий абзац

становится:

Это первый абзац. Это второй абзац. Это третий абзац.

Если я использую SendKeys и System.Diagnostics.Process.Start для отправки содержимого RichTextBox в Блокнот, абзацы сохраняются. Таким образом, проблема заключается в сохранении / сохранении как кода меню. Я добавляю код меню Сохранить как.

 private void SaveAsToolStripMenuItem_Click(object sender, System.EventArgs e)
    {

        try
        {
            SaveFileDialog1.Title = "RTE - Save File";
            SaveFileDialog1.DefaultExt = "rtf";
            SaveFileDialog1.Filter = "Rich Text Files|*.rtf|Text Files|*.txt|XML Files|*.xml|INI Files|*.ini|DVC Files|*.dvc|CSV Files |*.csv |CS Files |*.cs |HTML Files|*.html|HTML Files|*.htm|All Files|*.*";
            SaveFileDialog1.FilterIndex = 1;

            if (SaveFileDialog1.ShowDialog() == DialogResult.OK)
            {

                if (SaveFileDialog1.FileName == "")
                {
                    return;
                }

                string strExt;
                strExt = System.IO.Path.GetExtension(SaveFileDialog1.FileName);
                strExt = strExt.ToUpper();

                if (strExt == ".RTF")
                {
                    rtbDoc.SaveFile(SaveFileDialog1.FileName, RichTextBoxStreamType.RichText);
                }
                else
                {
                    System.IO.StreamWriter txtWriter;
                    txtWriter = new System.IO.StreamWriter(SaveFileDialog1.FileName);
                    txtWriter.Write(rtbDoc.Text);
                    txtWriter.Close();
                    txtWriter = null;
                    rtbDoc.SelectionStart = 0;
                    rtbDoc.SelectionLength = 0;
                }

                currentFile = SaveFileDialog1.FileName;
                rtbDoc.Modified = false;
                this.Text = "Editor: " + currentFile.ToString();
                MessageBox.Show(currentFile.ToString() + " saved.", "File Save");
            }
            else
            {

            }
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.Message.ToString(), "Error");
        }
    }

    private void ExitToolStripMenuItem_Click(object sender, System.EventArgs e)
    {
        try
        {
            if (rtbDoc.Modified == true)
            {
                System.Windows.Forms.DialogResult answer;
                answer = MessageBox.Show("Save file?", "Document not saved", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question);
                if (answer == System.Windows.Forms.DialogResult.Cancel)
                {
                    return;
                }

                else if (answer == System.Windows.Forms.DialogResult.Yes)
                {
                    return;
                }
                else
                {
                    rtbDoc.Modified = false;
                    Application.Exit();
                }
            }
            else
            {
                rtbDoc.Modified = false;
                Application.Exit();
            }
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.Message.ToString(), "Error");
        }
    }
...