关于vb.net中实现委托的一个问题
窗体form1中有一个文本框strmsg程序中加了一个模块模块中定义子过程main,程序从main()启动main()中打开窗体form1dimform_strmsgas...
窗体form1 中有一个文本框strmsg
程序中加了一个模块 模块中定义子过程main,程序从main()启动
main()中打开窗体form1
dim form_strmsg as new strmsg
form_strmsg.ShowDialog()
并启动一个线程连接服务器,接收数据
Dim remoteEP As New IPEndPoint(Net.IPAddress.Parse(SvrIP), SvrPort)
CliSocket = New Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp)
CliSocket.Connect(remoteEP)
myThread = New Thread(AddressOf ReciveMsg)
myThread.Start()
处理数据的函数recivemsg中收到数据时修改strmsg的text
具体如何实现委托呢?查了网上搜到的都是在一个窗体中使用Invoke 模块中不可以啊,具体如何写呢? 展开
程序中加了一个模块 模块中定义子过程main,程序从main()启动
main()中打开窗体form1
dim form_strmsg as new strmsg
form_strmsg.ShowDialog()
并启动一个线程连接服务器,接收数据
Dim remoteEP As New IPEndPoint(Net.IPAddress.Parse(SvrIP), SvrPort)
CliSocket = New Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp)
CliSocket.Connect(remoteEP)
myThread = New Thread(AddressOf ReciveMsg)
myThread.Start()
处理数据的函数recivemsg中收到数据时修改strmsg的text
具体如何实现委托呢?查了网上搜到的都是在一个窗体中使用Invoke 模块中不可以啊,具体如何写呢? 展开
展开全部
把UI对象当做参数传入 比如 Sub a(Form As Form1)
之后再用Form.Invoke(你的委托,参数) 就可以即时修改Form中的内容了
之后再用Form.Invoke(你的委托,参数) 就可以即时修改Form中的内容了
更多追问追答
追问
功能实现上还是有问题,能麻烦您根据我的描述给个范例吗?
追答
myThread = New Thread(AddressOf ReciveMsg)
myThread.Start(Form1)
Sub recivemsg(Form As Form1)
Dim s As String = "Test"
Form.Invoke(New Action(Sub() strmsg.Text = s))
End Sub
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询