分享

方法脚本1:vb.net如何知道用户单击的是哪个控件

 xzx淘淘 2019-04-19
    Private Sub ControlClick(ByVal sender As Object, ByVal e As System.EventArgs)
        '  MessageBox.Show(CType(sender, Control).Name)
        Text3.Text = CType(sender, Control).Text
    End Sub

    Private Sub T1数据库操作_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        '利用循环将窗体中所有控件的Click事件Handle到指定过程,分析传入参数sender返回单击控件名.
        For Each C As Control In Panel1.Controls
            AddHandler C.MouseClick, AddressOf ControlClick
        Next
    End Sub
参考文档:
1.vb.net如何知道用户单击的是哪个控件
利用循环将窗体中所有控件的Click事件Handle到指定过程,分析传入参数sender返回单击控件名.
Private Sub ControlClick(ByVal sender As Object, ByVal e As System.EventArgs)
MessageBox.Show(CType(sender, Control).Name)
End Sub
Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
For Each C As Control In Me.Controls
AddHandler C.MouseClick, AddressOf ControlClick
Next
End Sub
2.简述VB.NET AddHandler语句

在向大家详细介绍VB.NET AddHandler语句之前,首先让大家了解下代理是一个存储方法索引的类,然后全面介绍VB.NET AddHandler语句。事件只是用来通知一个行为已经发生的信息。在ObjectARX中,我们使用反应器(reactor)来处理AutoCAD的事件。而在AutoCAD .NET API中,ObjectARX反应器被换成了事件。

事件处理函数(或者叫回调函数)是用来监视和反馈程序中出现的事件。事件可以以不同的形式出现。

在介绍AutoCAD .NET API中的事件之前,让我们先来简单地了解一下代理。

代理

代理是一个存储方法索引的类(概念与函数指针类似)。代理对方法是类型安全的(与C中的函数指针类似)。代理有特定的形式和返回类型。代理可以封装符合这种特定形式的任何方法。

代理的一个用途就是作为产生事件的类的分发器。事件是.NET环境中第一级别的对象。虽然VB.NET把事件处理的许多细节给隐藏掉了,但事件总是由代理来实现的。事件代理可以多次调用(就是它们可以存储多于1个的事件处理方法的索引)。它们保存了用于事件的一个注册事件处理的列表。一个典型的代理有以下的形式:

  1. Public Delegate Event (sender as Object, e as EventArgs) 

第一个参数sender表示引发事件的对象。

第二个参数e是一个EventArgs参数(或者是一个派生的类),这个对象通常包含用于事件处理函数的数据。

VB.NET AddHandler语句

要使用事件处理函数,我们必须把它与事件联系起来。这要通过使用VB.NET AddHandler语句。AddHandler和RemoveHandler允许你在运行时连接、断开或修改与事件联系的处理函数。

当我们使用VB.NET AddHandler语句时,我们要确定事件引发者的名字,并要使用AddressOf语句来确定事件处理函数,例如:

  1. AddHandler MyClass1.AnEvent, AddressOf EHandler 

前面我们说过要使用RemoveHandler语句从事件处理函数中断开事件(移除联系)。语法如下所示:

  1. RemoveHandler MyClass1.AnEvent, AddressOf EHandler 

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多