Vb.net .NET Windows窗体事件序列

Vb.net .NET Windows窗体事件序列,vb.net,events,sequence,loaded,Vb.net,Events,Sequence,Loaded,我试图显示我的表单,然后加载我的数据(速度有点慢)。 即使只在onShown方法上调用我的load data方法,我的屏幕也会保持白色,直到所有数据都加载完毕。 然后我说: Thread.Sleep(100000) 在我的onShown()方法中,可能会注意到当启动onShown时,我的控件没有加载(可见) 是否存在仅在加载所有表单控件并使其可见时引发的事件 Tksss…不要使用线程。它会冻结你的窗户 解决此类延迟荷载的最佳方法是使用 System.Windows.Threading.di

我试图显示我的表单,然后加载我的数据(速度有点慢)。 即使只在onShown方法上调用我的load data方法,我的屏幕也会保持白色,直到所有数据都加载完毕。

然后我说:

Thread.Sleep(100000) 
在我的onShown()方法中,可能会注意到当启动onShown时,我的控件没有加载(可见)

是否存在仅在加载所有表单控件并使其可见时引发的事件


Tksss…

不要使用线程。它会冻结你的窗户

解决此类延迟荷载的最佳方法是使用
System.Windows.Threading.dispatchermer

Private dispatcherTimer As System.Windows.Threading.DispatcherTimer
一步一步:

步骤1:

首先将reference
WindowsBase
DLL添加到项目中

右键单击项目->添加引用。在.Net选项卡上选择
WindowsBase
并添加

第二步:

以代码导入
Imports System.Windows.threading

第三步:

dispatchermer

Private dispatcherTimer As System.Windows.Threading.DispatcherTimer
第4步:

以“Onshown”事件的形式创建
dispatchermer
对象,并将时间间隔设置为2秒(示例)

并在方法
Dispatchermer\u Tick
(在上述方法中添加的处理程序)中加载表单控件

   Public Sub dispatcherTimer_Tick()
            Try
                TextBox1.Text = "example"
                TextBox2.Text = "example"
                TextBox3.Text = "example"
                TextBox4.Text = "example"

               'CALL STOP TO THE TIMER SO THAT THE "dispatcherTimer_Tick" WONT GET CALLED REPEATEDLY.
                dispatcherTimer.Stop()
            Catch ex As Exception

            End Try

        End Sub