【发布时间】:2014-08-12 10:10:56
【问题描述】:
我有一个文本编辑器,可以打开文本文件.txt并将文本放入文本框中。用户还可以将文本保存到.txt 文件中。
用户如何保存最近保存的文本文件的更改?
另外,如果用户打开了txt 文件,文本编辑器如何将文本文件更改为用户更改的内容?
希望你明白这一点。提前致谢。
【问题讨论】:
我有一个文本编辑器,可以打开文本文件.txt并将文本放入文本框中。用户还可以将文本保存到.txt 文件中。
用户如何保存最近保存的文本文件的更改?
另外,如果用户打开了txt 文件,文本编辑器如何将文本文件更改为用户更改的内容?
希望你明白这一点。提前致谢。
【问题讨论】:
由于我不知道你到目前为止做了什么,我将从头开始......
为此,您将需要以下组件:
保存文件对话框
一个打开文件对话框
三个按钮(或菜单项),标记为:“保存”、“另存为”、“打开”
我实际上建议使用 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()
.
希望这会有所帮助!
【讨论】:
如果我理解您的问题:您希望您的文本编辑器应用程序检测到它当前正在向用户查看的源文本文件发生的更改,如果它检测到更改,它应该更新其文本框以显示最新的用户的文件..我说得对吗?
如果是这种情况,一种方法是使用计时器。每次触发计时器滴答事件时,您应该检查文件的最后修改日期。如果它大于您第一次打开文件时检查的日期,那么文件已经经历了一些更改。将文件内容重新加载到文本框中。
另一种方法(不使用计时器)是仅在激活应用程序窗口后检查修改日期。由于用户必须将程序的焦点更改为,例如记事本来更改文本文件,因此一旦用户将焦点返回到文本编辑器应用程序,请使用 Window Activate 或 Click 事件来检查文件修改日期。
【讨论】: