【问题标题】:How to save changes of a saved text file in VB.NET如何在 VB.NET 中保存已保存文本文件的更改
【发布时间】:2014-08-12 10:10:56
【问题描述】:

我有一个文本编辑器,可以打开文本文件.txt并将文本放入文本框中。用户还可以将文本保存到.txt 文件中。

用户如何保存最近保存的文本文件的更改?

另外,如果用户打开了txt 文件,文本编辑器如何将文本文件更改为用户更改的内容?

希望你明白这一点。提前致谢。

【问题讨论】:

    标签: vb.net text


    【解决方案1】:

    由于我不知道你到目前为止做了什么,我将从头开始......

    为此,您将需要以下组件:

    保存文件对话框

    一个打开文件对话框

    三个按钮(或菜单项),标记为:“保存”、“另存为”、“打开”

    我实际上建议使用 RichTextBox 而不是常规的 TextBox。

    .

    首先,我们在代码中放一个变量来知道之前保存的是什么文件:

    Dim LatestFile As String
    

    然后,转到 Save- 和 OpenFileDialog 的属性并将其放入 Filter 字段中:

    Text files (*.txt)|*.txt
    

    然后双击 SaveFileDialog,它应该在代码中写入 SaveFileDialog_FileOk 事件。你放在那里:

    LatestFile = SaveFileDialog1.FileName
    RichTextBox1.SaveFile(SaveFileDialog1.FileName, RichTextBoxStreamType.PlainText)
    

    然后双击OpenFileDialog,输入这段代码:

    LatestFile = OpenFileDialog1.FileName
    RichTextBox1.LoadFile(OpenFileDialog1.FileName, RichTextBoxStreamType.PlainText)
    

    然后是按钮:

    “打开”按钮:

    OpenFileDialog1.ShowDialog()
    

    “保存”按钮:

    If Not LatestFile = "" Then
        RichTextBox1.SaveFile(LatestFile, RichTextBoxStreamType.PlainText)
    Else
        SaveFileDialog1.ShowDialog()
    End If
    

    还有“另存为”按钮:

    SaveFileDialog1.ShowDialog()
    

    .

    希望这会有所帮助!

    【讨论】:

    • 感谢您的回复。我得到了你在顶部说的控件,我也在使用 RichTextBox。再次感谢!
    • 我看不出您的回答将如何帮助检测源文本文件是否发生更改,然后重新加载更改的文件。
    • 他没有要求寻找源文件更改。他希望能够打开一个文件并将其文本放入 TextBox 中,并且还希望能够将 TextBox 中的文本保存到最近保存的文件中。我敢打赌,这就是他所说的“文本编辑器如何将文本文件更改为用户已更改的内容?”。用我的话来说“如何将文本编辑器中的文本更改为用户打开的文本?”。这就是我的理解,显然也是他想要的。他说“文本编辑器如何更改文本文件......”。不是反过来。但是JDS404,如果我错了,请纠正我。
    【解决方案2】:

    如果我理解您的问题:您希望您的文本编辑器应用程序检测到它当前正在向用户查看的源文本文件发生的更改,如果它检测到更改,它应该更新其文本框以显示最新的用户的文件..我说得对吗?

    如果是这种情况,一种方法是使用计时器。每次触发计时器滴答事件时,您应该检查文件的最后修改日期。如果它大于您第一次打开文件时检查的日期,那么文件已经经历了一些更改。将文件内容重新加载到文本框中。

    另一种方法(不使用计时器)是仅在激活应用程序窗口后检查修改日期。由于用户必须将程序的焦点更改为,例如记事本来更改文本文件,因此一旦用户将焦点返回到文本编辑器应用程序,请使用 Window Activate 或 Click 事件来检查文件修改日期。

    【讨论】:

    • No.. 这两个选项都不好。计时器不必要地消耗宝贵的 CPU 周期,并且您建议的激活方法不可靠,因为可以从任何地方(网络等)编辑文件。更好的方法是使用FileSystemWatcher Class
    • 是的,我同意@PradeepKumar 所说的。对不起!
    猜你喜欢
    • 1970-01-01
    • 2013-05-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-02
    相关资源
    最近更新 更多