无法处理另一个类中的事件

时间:2015-03-18 07:50:15

标签: vb.net

我是视觉基础的新手,并且想知道是否有可能根据表格中的动作触发课堂中的事件。

以下是我的问题: 我有一个名为Main的表单,有一个名为picPID的图片框 还有一个名为add_new

的类

我想做的是: 单击鼠标右键时,事件处理的代码将放在名为add_new

的类中

我以为我可以用以下方式声明它:

Sub meMouseDown(sender As Object,e As MouseEventArgs)处理Main.picPID.MouseDown

但是我得到一个错误,说我必须用事件声明它,我试图将图片框声明为:

Public withEvents as picturebox

但它有助于任何消化吗?使用Main表单中的代码不是问题,但它会产生大量代码,所以我希望将其拆分。

1 个答案:

答案 0 :(得分:2)

所以你有一个带有eventhandler的类:

Public Class add_new

    Public Sub PictureBoxEventHandler(sender As Object, e As MouseEventArgs)
        'Your Implementation
    End Sub

End Class

然后,您需要在包含图片框的表单中包含此类的实例:

Public Class Form1

    Private add_New_Command As New add_new ' hold a reference to the command

    'constructor
    Public Sub New()

        InitializeComponent()

        ' and add the handler to the event of the picture box ... hook it up
        AddHandler PictureBox1.MouseDown, AddressOf add_New_Command.PictureBoxEventHandler

    End Sub

End Class