VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > 编程开发 > vb >
  • vb.net用委托更新UI

直接上代码:
1、单纯委托使用:
 
Delegate Sub wt(data As String) '定义委托
 
Public Class Form1
 
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
 
        Dim xc As New Threading.Thread(AddressOf betweenClass) 
        xc.Start()
 
    End Sub
 
    ''' <summary>
    ''' 被委托的中间类
    ''' </summary>
    Private Sub betweenClass()
        Me.Invoke(New wt(AddressOf changeUI), "你好") '用Invoke跨线程更新UI
    End Sub
 
    Private Sub changeUI(data As String) '这里要和委托定义时的参数保持一致
        Label1.Text = data
    End Sub
End Class
 
2、自定义事件 加 委托更新UI
 
''' <summary>
''' 自定义事件 加 委托更新UI
''' 
''' 委托:原本是自己的事,但是由于某种原因自己做不了,就委托别人来帮助完成
''' </summary>
 
Delegate Sub wt(data As String) '定义委托---有参
'Delegate Sub wt()  '无参
 
Public Class Form1
    Private WithEvents eveDemo As New EveDemo '获取事件类的对象,并用WithEvents修饰
 
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        eveDemo.Test() '1、先调用另一个类中的方法来触发自定义事件,在事件回调方法中来用Invoke跨线程更新UI
    End Sub
 
    ''' <summary>
    ''' 自定义事件回调处理方法
    ''' </summary>
    ''' <param name="data"></param>
    Private Sub mEve_Eve(data As String) Handles eveDemo.Eve
        Me.Invoke(New wt(AddressOf changeUI), data) '定义委托有参数时,可在这里加参数
        'Me.Invoke(New wt(AddressOf caozuo)) ’这是无参
    End Sub
 
    Private Sub changeUI(data As String) '这里要和委托定义时的参数保持一致
        Label1.Text = data
    End Sub
End Class
 
 
 
————————————————
版权声明:本文为CSDN博主「_Cike_」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_35952946/article/details/79233993

相关教程