首页 > 解决方案 > vb .net 通过类传递对象/变量

问题描述


我正在努力解决通过 VB 中的不同类传递变量的解决方案。
目标是运行一个表单来显示进度和其他信息(我在 Form1 中创建了一个 BackgroundWorker),而另一个 vb 线程正在做这项工作。
我完成了 MainClass 和 myWrapper,它们在 Form1 窗口中没有完成这项工作。我在它们之间设置了 WorkerArgs 类,以传递参数,但我只能创建 2 个不同的 WorkerArgs 对象。
我需要将相同的 WorkerArgs.startProgress 值传递给 Form1 类...怎么做?
Public Class MainClass
   Shared Sub Main()
    Dim form1 As Form = New Form1
    Dim myWrapper As WorkerArgs = New WorkerArgs
    form1.Show()
        
    myWrapper.startProgress = "start"

   End Sub

End Class

Public Class WorkerArgs
    Public startProgress As String
    Public passPercentage As String
End Class

Public Class Form1
    
    Public Sub OnLoad(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Dim args As WorkerArgs
        BackgroundWorker1.RunWorkerAsync(args)
    End Sub
    
    
    Public Sub bgw1_DoWork(ByVal sender As Object, ByVal e As DoWorkEventArgs) Handles BackgroundWorker1.DoWork
        System.Threading.Thread.Sleep(1000)
        ' Access variables through e
        Dim args As WorkerArgs = e.Argument
        ' Do something with args
        Dim str As String = args.startProgress
        If str = "start" Then
            MessageBox.Show(str)
        End If
    End Sub
[...]
End Class

标签: vb.net

解决方案


推荐阅读