如何刷新 Label (VB) 中的 OpenFileDialog .txt 文件?
How to refresh OpenFileDialog .txt file in Label (VB)?
我的 VB 应用程序应使用 StreamReader 读取文本并在标签中显示 .txt 文件内容:
Private Sub FileLocationButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles FileLocationButton.Click
OpenFileDialog1.ShowDialog()
End Sub
Private Sub OpenFileDialog1_FileOk(ByVal sender As System.Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles OpenFileDialog1.FileOk
If OpenFileDialog1.FileName <> "" Then
Dim SR As New StreamReader(OpenFileDialog1.FileName)
Do Until SR.EndOfStream
Label6.Text = Label6.Text & SR.ReadLine & vbCrLf
Loop
SR.Close()
End If
End Sub
我正在用 MS Word 等编写和保存文本文件,想在 vb 应用程序中查看文件(文本)的更新版本。
所以:
我添加了一个计时器,想知道什么代码允许应用程序每 3 秒使用新文本(来自 .txt 文件)刷新标签,以便我刚刚在 MS Word/Notepad 等中输入的新内容. 会显示吗?
您可以使用计时器来刷新标签中的文本。在窗体设计器中,将 Timer 从工具箱拖到主窗体 (Form1) 上。将 FilePath 属性 添加到您的首选项表单 (Preferences1) 并使用它来存储在 OpenFileDialog 中选择的路径。当您显示首选项表单时,将其路径保存在主表单中的 class 级别变量中,并以 3000 的间隔启动计时器(这是毫秒,所以 3000 是 3 秒)。在定时器 Tick 事件中,再次读取文件并替换标签中的文本。请注意,以下代码使用 File.ReadAllText 在一个语句中读取文件(并关闭它)。
在主窗体 (Form1) 中有此代码
Private textFile As String
Sub PrefButton_Click(sender As Object, e As EventArgs) Handles PrefButton.Click
Using pref As New Preferences1
pref.ShowDialog
textFile = pref.FilePath
End Using
If textFile <> "" Then Label6.Text = File.ReadAllText(textFile)
Timer1.Interval = 3000
Timer1.Start
End Sub
Private Sub Timer1_Tick(sender As Object, e As EventArgs) _
Handles Timer1.Tick
If textFile <> "" Then Label6.Text = File.ReadAllText(textFile)
End Sub
在首选项表单 (Preferences1) 中,您有此代码
Private myPath As String
Public ReadOnly Property FilePath As String
Get
Return myPath
End Get
End Property
Private Sub FileLocationButton_Click(sender As Object, e As EventArgs) _
Handles FileLocationButton.Click
If OpenFileDialog1.ShowDialog = DialogResult.OK Then
myPath = OpenFileDialog1.FileName
End If
End Sub
我的 VB 应用程序应使用 StreamReader 读取文本并在标签中显示 .txt 文件内容:
Private Sub FileLocationButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles FileLocationButton.Click
OpenFileDialog1.ShowDialog()
End Sub
Private Sub OpenFileDialog1_FileOk(ByVal sender As System.Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles OpenFileDialog1.FileOk
If OpenFileDialog1.FileName <> "" Then
Dim SR As New StreamReader(OpenFileDialog1.FileName)
Do Until SR.EndOfStream
Label6.Text = Label6.Text & SR.ReadLine & vbCrLf
Loop
SR.Close()
End If
End Sub
我正在用 MS Word 等编写和保存文本文件,想在 vb 应用程序中查看文件(文本)的更新版本。
所以:
我添加了一个计时器,想知道什么代码允许应用程序每 3 秒使用新文本(来自 .txt 文件)刷新标签,以便我刚刚在 MS Word/Notepad 等中输入的新内容. 会显示吗?
您可以使用计时器来刷新标签中的文本。在窗体设计器中,将 Timer 从工具箱拖到主窗体 (Form1) 上。将 FilePath 属性 添加到您的首选项表单 (Preferences1) 并使用它来存储在 OpenFileDialog 中选择的路径。当您显示首选项表单时,将其路径保存在主表单中的 class 级别变量中,并以 3000 的间隔启动计时器(这是毫秒,所以 3000 是 3 秒)。在定时器 Tick 事件中,再次读取文件并替换标签中的文本。请注意,以下代码使用 File.ReadAllText 在一个语句中读取文件(并关闭它)。
在主窗体 (Form1) 中有此代码
Private textFile As String
Sub PrefButton_Click(sender As Object, e As EventArgs) Handles PrefButton.Click
Using pref As New Preferences1
pref.ShowDialog
textFile = pref.FilePath
End Using
If textFile <> "" Then Label6.Text = File.ReadAllText(textFile)
Timer1.Interval = 3000
Timer1.Start
End Sub
Private Sub Timer1_Tick(sender As Object, e As EventArgs) _
Handles Timer1.Tick
If textFile <> "" Then Label6.Text = File.ReadAllText(textFile)
End Sub
在首选项表单 (Preferences1) 中,您有此代码
Private myPath As String
Public ReadOnly Property FilePath As String
Get
Return myPath
End Get
End Property
Private Sub FileLocationButton_Click(sender As Object, e As EventArgs) _
Handles FileLocationButton.Click
If OpenFileDialog1.ShowDialog = DialogResult.OK Then
myPath = OpenFileDialog1.FileName
End If
End Sub