首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >计时器函数无法传递给按钮事件

计时器函数无法传递给按钮事件
EN

Stack Overflow用户
提问于 2016-02-18 18:23:35
回答 1查看 58关注 0票数 0

我正在做一个逐行获取文本框索引的项目。所以当我点击按钮时,Start会读取文本的索引,而listbox会打印出来。最后,我会将列表框的可见性设为false,然后在fastreport中显示文本索引。我试图克服的是计时器不能运行。

另一方面,假设我的文本文件中有10个行集合。通过使用ReadLine属性,编译器会因第11个元素而停止。我该如何处理这个问题。

这是我的代码。

代码语言:javascript
运行
复制
Public Class Form1
Dim _report As Report
Dim val As StreamReader
Dim fs As FileStream
Dim second As Integer

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    fs = New FileStream("tf.txt", FileMode.Open, FileAccess.Read)
    val = New StreamReader(fs)

    Timer1.Interval = 5000

End Sub

Private Sub FileButton_Click(sender As Object, e As EventArgs) Handles FileButton.Click

    If (ListBox1.SelectedIndex) Then
        ListBox1.Items.Add(val.ReadLine)
    End If
    Timer1.Start()

    '_report.Load("file.frx")
End Sub

Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
    ListBox1.Text = DateTime.Now.ToString

    second = second + 1
    If second >= 5 Then
        Timer1.Stop()

    End If
End Sub
EN

回答 1

Stack Overflow用户

发布于 2016-02-18 19:25:43

尝试使用微软的Reactive Framework (NuGet "Rx-WinForms"):

代码语言:javascript
运行
复制
File _
    .ReadAllLines("tf.txt") _
    .ToObservable() _
    .Zip(Observable.Interval(TimeSpan.FromSeconds(5.0)), Function (line, n) line) _
    .ObserveOn(ListBox1) _
    .Subscribe(Sub (line) ListBox1.Items.Add(line))
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35478758

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档