控件事件的封装,达到重用的目的

1    利用一个类,先定义控件,再定义控件的事件,完成事件的重新定义,达到封装的目的。或者在事件之后再执行一个事件。

 

Public Class clsEvent
    Private WithEvents objBtn As Button
    Public Event btnIsClick(ByVal Sender As Object, ByVal intID As Integer)
    Private clicktime As Integer
    Public Property Btn As Button
        Get
            Return objBtn
        End Get
        Set(value As Button)
            objBtn = value
        End Set
    End Property

    Private Sub objBtn_Click(sender As Object, e As EventArgs) Handles objBtn.Click    ‘ 通过控件的单击事件的句柄指向本事件,所以单击后,代码会自动转向到本事件后开始执行
        clicktime += 1
        objBtn.BackColor = Color.Violet
        RaiseEvent btnIsClick(objBtn, clicktime)    ’通过 RaiseEvent,可以调用在主窗体的自定义的 “btnIsClick”事件
    End Sub

    Private Sub objBtn_MouseEnter(sender As Object, e As EventArgs) Handles objBtn.MouseEnter
        objBtn.BackColor = Color.Thistle
    End Sub
End Class

 

2  调用事件

 

Public Class Form1
    Private WithEvents mobjCls As New clsEvent
    Private WithEvents mobjCls2 As New clsEvent

 

    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles Me.Load
        mobjCls.Btn = Button1
        mobjCls2.Btn = Button2
    End Sub

    Private Sub mobjCls_btnIsClick(Sender As Object, intID As Integer) Handles mobjCls.btnIsClick
        MsgBox(Sender.Name & intID)
    End Sub


    Private Sub mobjCls2_btnIsClick(Sender As Object, intID As Integer) Handles mobjCls2.btnIsClick
        MsgBox(Sender.Name & intID)
    End Sub

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        MsgBox("hello world")
    End Sub
End Class

 

备注:执行顺序   Button1_Click------->objBtn_Click--------->mobjCls_btnIsClick

概念的拓展:函数的封装拓展到事件的封装。类成员由普通成员拓展到控件对象。

意义:利用类来封装对象的属性,在绑定的时候,只有一个属性变化,就可以自动触发其他属性的变化,不用再另外编写计算其他属性值的代码。利用类来封装控件的事件,可以达到整体控制控件行为的效果。有利于整体的更新和维护。

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值