【问题标题】:RTF code saved when I save a txt file保存 txt 文件时保存的 RTF 代码
【发布时间】:2018-11-12 22:50:27
【问题描述】:

我正在开发一个 VB.NET 项目。

我有一个丰富的文本框和一个按钮来保存我写的内容。

但是当我打开文件时,我看到了这个:

我只想显示文本“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

我将不胜感激。

【问题讨论】:

  • 也许你不应该使用“丰富”的文本框?
  • 您是否查看过文档或关注过 Intellisense 是否有其他使用 SaveFile 的方法?
  • 您是在记事本中打开文件吗?如果是这样,记事本只能显示纯文本。尝试使用 RichTextBox1.Load(filename) 在您的应用程序中打开您的文件

标签: vb.net richtextbox rtf


【解决方案1】:

RichTextBox.SaveFile(String) 预定义行为在文档中进行了描述:

将 RichTextBox 的内容保存为富文本格式 (RTF) 文件。

如果您在SaveFileDialog 中定义了更多格式选项,您还需要验证用户选择的格式并指示SaveFile 方法在将输出流式传输到磁盘时使用该格式。
例如,使用Select Case 开关选择与用户选项对应的RichTextBoxStreamType(有关其他可能的格式选项的含义,请参阅文档):

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-07-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多