vb.net用委托更新UI

想看自定义事件可转此处:http://blog.csdn.net/qq_35952946/article/details/79185511


直接上代码:
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
  • 3
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值