VB.NET事件地址

全能的

我想设置一个回调,该回调将在我的班上由另一个班提出:

Public Class CameraWindow
        Inherits System.Windows.Forms.Control
        Private m_camera As Camera = Nothing

        ' Camera property
        <Browsable(False)> _
        Public Property Camera() As Camera
            Get
                Return m_camera
            End Get
            Set(value As Camera)
                ' lock
                Monitor.Enter(Me)

                ' detach event
                If m_camera IsNot Nothing Then
                    m_camera.NewFrame -= New EventHandler(AddressOf camera_NewFrame)
                    timer.[Stop]()
                End If

                m_camera = value
                needSizeUpdate = True
                firstFrame = True
                flash = 0

                ' atach event
                If m_camera IsNot Nothing Then
                    m_camera.NewFrame += New EventHandler(AddressOf camera_NewFrame)
                    timer.Start()
                End If

                ' unlock
                Monitor.[Exit](Me)
            End Set
        End Property

        ' On new frame ready
        Private Sub camera_NewFrame(sender As Object, e As System.EventArgs)
            Invalidate()
        End Sub

该事件在

  Public Class Camera

        Public Event NewFrame As EventHandler

但是VB.NET不喜欢我附加和分离事件的方式。有人可以告诉我如何正确执行吗?

非常感谢你的帮助!

蒂姆·施密特

看起来好像您通常在使用C#。在VB.NET中,您可以使用以下AddHandler语句

AddHandler m_camera.NewFrame, AddressOf camera_NewFrame

删除处理程序使用 RemoveHandler

RemoveHandler m_camera.NewFrame, AddressOf camera_NewFrame

但是,如果事件处理程序位于其他类中,则需要将其公开:

Public Sub camera_NewFrame(sender As Object, e As System.EventArgs)
    Invalidate()
End Sub

并且您需要一个实例:

AddHandler Camera.NewFrame, AddressOf m_camera.camera_NewFrame

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

重载VB.NET事件?

来自分类Dev

重载VB.NET事件?

来自分类Dev

深入了解VB.NET事件

来自分类Dev

Vb.net ListView检查事件

来自分类Dev

深入了解VB.NET事件

来自分类Dev

Vb.Net中的事件处理程序

来自分类Dev

CellContentClick事件(VB Net)中的Datagridviewcheckboxcolumn问题

来自分类Dev

VB Net Clicking事件进行控制

来自分类Dev

SendGrid事件Webhooks VB.net

来自分类Dev

VB .NET控件的事件处理程序

来自分类Dev

在VB.net中查找DLL的基地址

来自分类Dev

在VB.NET Windows窗体中重新运行事件

来自分类Dev

在VB.NET中添加事件处理程序的语法

来自分类Dev

datagridview vb.net中特定于列的单击事件

来自分类Dev

在vb.net中覆盖继承的事件和参数

来自分类Dev

动态生成的Linkbutton不会触发Onclick事件VB.Net

来自分类Dev

VB Net Update UI控件来自单独的线程事件

来自分类Dev

KeyDown事件键不起作用-VB.net

来自分类Dev

VB.net多个事件的一个子项

来自分类Dev

vb.net组合框selectedvalue事件错误

来自分类Dev

在VB.Net中为DataGridViewButtonCell创建事件

来自分类Dev

vb.net datagridview中的longpress事件是什么

来自分类Dev

VB.NET中是否存在“还原时间到”事件

来自分类Dev

用于datetimepicker检查的VB.NET事件已更改

来自分类Dev

Vb.NET指令执行未由事件触发

来自分类Dev

VB.net Outlook检查邮件和日历事件

来自分类Dev

VB.NET:与成员一起创建事件

来自分类Dev

如何使用VB.Net在datagridview中使用CellEndEdit事件?

来自分类Dev

使用从VB.NET引发的C#处理事件