vb.net - 线程内部模块并将值添加到 me.texbox1
问题描述
有谁知道为什么我的代码在我的文本框中返回“”?:-)
这是我在主班
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button2.Click
Dim My_Thread as Threading.Thread
My_Thread = New Threading.Thread(AddressOf Module1.MyTest)
My_Thread.Start()
End Sub
这在module1中
Sub MyTest()
Dim TestingValue as string = "Test"
MainForm.Textbox1.Text = TestingValue
End sub
调用所有时间崩溃代码,然后在 texbox1 中再次尝试返回“”:-/
解决方案
在 MainForm 上创建一个对您想要的任何对象的公共声明的子类,然后将该类作为参数传递给模块。与传递整个 Form 类实例相比,这将是一种更简洁的方法。然后使用 Jimi 建议的方法,您可以设置文本框而不会违反跨线程。
Public Class MainForm
Public Class PassToModule
Public TxBx1 As TextBox = MainForm.TextBox1
Public TxBx2 As TextBox = MainForm.TextBox2
End Class
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim PassToModule As New PassToModule
Dim My_Thread As Threading.Thread
My_Thread = New Threading.Thread(AddressOf MyTest)
My_Thread.Start(PassToModule)
End Sub
End Class
Module Module1
Dim FromMainForm As MainForm.PassToModule
Sub MyTest(PasToModule As MainForm.PassToModule)
FromMainForm = PasToModule
FromMainForm.TxBx1.BeginInvoke(New MethodInvoker(Sub()
FromMainForm.TxBx1.Text = "Test"
FromMainForm.TxBx2.Text = "Test"
End Sub))
End Sub
End Module
推荐阅读
- sql - 重新构建查询以使用具有相似数据但之间没有每个日期的表
- ios - SwiftUI 中带循环的动态按钮
- arrays - 我想将 id 值存储在变量 ex $id=76 中
- ruby-on-rails - 在 ActiveRecord 中寻找常用词/短语
- json - 我必须解析动态 json
- asp.net-mvc-4 - 如何在 Asp.Net MVC5 中启用 CORS
- laravel - 在 vuex 操作中调用时未定义路由器
- java - 如何在android中使用bitcoinj(walletappkit)从助记符创建比特币钱包
- tempus-dominus-datetimepicker - 如何在 Tempus Dominus Bootstrap-4 日期时间选择器中仅突出显示和启用特定的工作日?
- django - 如何从 ManyToOneRel 对象中获取相关的模型类名称?