RTF код сохраняется при сохранении текстового файла - PullRequest
0 голосов
/ 03 июня 2018

Я работаю над проектом VB.NET.

У меня есть richtextbox и кнопка для сохранения того, что я пишу.

Но когда я открываю файл, я вижу это:

enter image description here Я хочу показать только текст "ilyasscj isjdivs", а не весь код RTF.

Это мой код:

Private Sub EnsregistrerSousToolStripMenuItem_Click(ByVal sender As 
System.Object, ByVal e As System.EventArgs) Handles 
EnsregistrerSousToolStripMenuItem.Click
    SaveFileDialog1.InitialDirectory = "c:\"
    SaveFileDialog1.Filter = "Texte|*.txt|RTF|*.rtf|Tous|*.*"
    SaveFileDialog1.Title = "enregistrer un fichier"
    If SaveFileDialog1.ShowDialog() = Windows.Forms.DialogResult.OK Then
        fich = SaveFileDialog1.FileName
        RichTextBox1.SaveFile(fich)
    End If
End Sub

Private Sub EnregistrerToolStripMenuItem_Click(ByVal sender As 
System.Object, ByVal e As System.EventArgs) Handles 
EnregistrerToolStripMenuItem.Click
    If fich = "" Then
        SaveFileDialog1.InitialDirectory = "c:\"
        SaveFileDialog1.Filter = "Texte|*.txt|RTF|*.rtf|Tous|*.*"
        SaveFileDialog1.Title = "enregistrer un fichier"
        If SaveFileDialog1.ShowDialog() = Windows.Forms.DialogResult.OK Then
            fich = SaveFileDialog1.FileName
            Try
                RichTextBox1.SaveFile(fich)
            Catch ex As Exception
                '    MsgBox(ex.Message)
            End Try
        End If

    Else
        Try
            RichTextBox1.SaveFile(fich)
        Catch ex2 As Exception
            MsgBox(ex2.Message)
        End Try

    End If
End Sub

Буду признателен за любую помощь.

1 Ответ

0 голосов
/ 03 июня 2018

Предопределенное поведение RichTextBox.SaveFile (String) описано в документации:

Сохраняет содержимое RichTextBox в расширенный текстовый формат (RTF) файл.

Если вы определили дополнительные параметры формата в SaveFileDialog, вам также необходимо проверить, какой формат выбрал пользователь, и дать указание методу SaveFile использовать этот формат при потоковой передаче выходных данных.на диск.
В качестве примера, используйте переключатель Select Case, чтобы выбрать RichTextBoxStreamType , соответствующий выбору пользователя (см. документацию о значении других возможных параметров Fomat):

Dim sfd As SaveFileDialog = New SaveFileDialog()
sfd.Filter = "Texte (*.txt)|*.txt|RTF (*.rtf)|*.rtf|Tous (*.*)|*.*"
sfd.Title = "Enregistrer un fichier"
sfd.DefaultExt = "txt"

If sfd.ShowDialog() = Windows.Forms.DialogResult.OK Then
    Dim Filter As Integer = sfd.FilterIndex
    Dim FileFormat As RichTextBoxStreamType
    Select Case Filter
        Case 1
            FileFormat = RichTextBoxStreamType.PlainText
        Case 2
            FileFormat = RichTextBoxStreamType.RichText
        Case Else
            FileFormat = RichTextBoxStreamType.UnicodePlainText
    End Select

    Dim FileName As String = sfd.FileName
    RichTextBox1.SaveFile(FileName, FileFormat)
End If
...