首页 > 解决方案 > 在我的 VB.NET 表单应用程序中,我想在不使用 Me.Refresh() 方法的情况下连续更新表单上的标签文本,我该怎么做?

问题描述

这是连续返回一个随机整数并引发一个事件(每次)的函数,该事件在称为 Eventing 的 windows 窗体的代码隐藏中调用一个处理程序

  Public Function MyNumber() As Int64

        While (True)
            Dim myInt As Int64

            Randomize()
            myInt = CInt(Int((100 * Rnd()) + 1))

            RaiseEvent ValueChanged(myInt)
            Return myInt

        End While

    End Function

在表单的 CodeBehind 中,我使用此代码将标签更新为从函数返回的值以更新标签文本

   Public Sub Eventing(e As Int64) Handles CoolObject.ValueChanged

        ActiveForm.Refresh()


        Label1.Text = e.ToString

    End Sub

问题是:代码运行良好,Label1 不断更新,但整个表单冻结 表单上的其他按钮都没有响应,我必须在 Visual Studio 上强行停止它

标签: vb.net

解决方案


感谢您的回复,我使用 BackgroundWorker 线程解决了这个问题


推荐阅读