0
我試圖展示我的窗體,然後加載我的數據(有點慢)。 即使僅在onShown方法上調用我的加載數據方法,我的屏幕仍保持白色,直到加載所有數據。 .NET Windows窗體事件序列
然後我把:
Thread.Sleep(100000)
在我onShown()方法,可以注意到,當onShown觸發我的控件不加載(可見)。
是否有任何事件僅在所有表單控件加載並可見時才引發?
Tksss ...
我試圖展示我的窗體,然後加載我的數據(有點慢)。 即使僅在onShown方法上調用我的加載數據方法,我的屏幕仍保持白色,直到加載所有數據。 .NET Windows窗體事件序列
然後我把:
Thread.Sleep(100000)
在我onShown()方法,可以注意到,當onShown觸發我的控件不加載(可見)。
是否有任何事件僅在所有表單控件加載並可見時才引發?
Tksss ...
請勿使用線程。它會凍結你的窗戶。
解決這些類型的延遲負荷的最佳方法是使用 System.Windows.Threading.DispatcherTimer
循序漸進:
第一步:
首先添加引用WindowsBase
DLL到您的項目。
右鍵單擊項目 - >添加引用。在.Net選項卡上選擇WindowsBase
並添加。
第二步:
在表單代碼導入Imports System.Windows.threading
第三步:
爲DispatcherTimer
Private dispatcherTimer As System.Windows.Threading.DispatcherTimer
創建形式的私人對象
步驟4:
在形式 「Onshown」 事件創建DispatcherTimer
對象並設定爲2秒(實施例)的時間間隔。
Private Sub Form1_Shown(sender As System.Object, e As System.EventArgs) Handles MyBase.Shown
'CREATE DISPATCHER OBJECT
dispatcherTimer = New System.Windows.Threading.DispatcherTimer()
'ADD THE METHOD TO BE HANDLED AFTER SPECIFIED INTERVAL
AddHandler dispatcherTimer.Tick, AddressOf dispatcherTimer_Tick
'SET YOUR INTERVAL (set 2 sec for example)
dispatcherTimer.Interval = New TimeSpan(0, 0, 2)
'START THE TIMER.
dispatcherTimer.Start()
End Sub
而在方法dispatcherTimer_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