我在Visual Studio中编写一个Visual Basic程序,它有一个带有标签和进度条的闪屏。我想使用ApplicationEvents.vb
文件与它们进行交互,您可以在该文件中创建在程序启动时运行的事件。问题是每当我运行程序并尝试运行程序并与这些项目交互时,我每次都会收到此错误。
我理解错误是因为我试图访问在另一个线程上运行的控件,所以如何访问此线程以便更改我想要的启动画面?
答案 0 :(得分:1)
查看我的本教程,了解如何从工作线程访问控件:
http://www.vbforums.com/showthread.php?498387-Accessing-Controls-from-Worker-Threads
您可以使用这些原则在启动画面中实现方法,然后从您喜欢的任何地方调用这些方法。例如,这是一个在启动屏幕上更新ProgressBar的方法,无论它从哪个线程调用:
Public Sub IncrementProgress()
If Me.InvokeRequired Then
Me.Invoke(New MethodInvoker(AddressOf IncrementProgress))
Else
Me.ProgressBar1.PerformStep()
End If
End Sub
以下是您可以调用该方法的方法:
DirectCast(My.Application.SplashScreen, SplashScreen1).IncrementProgress()
答案 1 :(得分:-1)
创建表单拖动计时器和进度条到启用计时器的窗体属性为true。
Private Sub Timer1_Tick(ByVal sender As System.Object,ByVal e As System.EventArgs)处理Timer1.Tick Dim scount As Integer
scount = 0
scount = Convert.ToInt32(label1.Text) + 1
label1.Text = Convert.ToString(scount)
ProgressBar1.Value = scount
If (scount = 100) Then
Timer1.Enabled = False
Me.Hide()
Form1.Show()
End If