Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在我的VB.NET窗体应用程序中,我希望在不使用Me.Refresh()方法的情况下连续更新窗体上的labeltext。我该怎么做?_Vb.net - Fatal编程技术网

在我的VB.NET窗体应用程序中,我希望在不使用Me.Refresh()方法的情况下连续更新窗体上的labeltext。我该怎么做?

在我的VB.NET窗体应用程序中,我希望在不使用Me.Refresh()方法的情况下连续更新窗体上的labeltext。我该怎么做?,vb.net,Vb.net,此函数连续返回一个随机整数,并(每次)引发一个事件,该事件调用windows窗体的codebehind中名为Eventing的处理程序 Public Function MyNumber() As Int64 While (True) Dim myInt As Int64 Randomize() myInt = CInt(Int((100 * Rnd()) + 1)) Rais

此函数连续返回一个随机整数,并(每次)引发一个事件,该事件调用windows窗体的codebehind中名为Eventing的处理程序

  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上强制停止它

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

在MyNumber方法中,您正在启动一个无限循环。这会阻塞用户界面。也许您想看看如何使用线程或计时器。还建议使用random类而不是旧的Rnd()函数使用
计时器
,并在
勾选
事件处理程序中更改
标签
文本。你可能每秒最多会得到20次更改,但为什么你会想要那么多呢?
标签
用于向用户显示文本,它将是一个模糊,每秒更改20次,因此它是什么?
不建议使用BackgroundWorker
。可以考虑使用多线程。