解决方案 »

  1.   

    看一下这样行不行:'先定义委托
    Delegate Sub ScanEventHandler(ByVal string As String)
    '然后在类里面定义事件
    Public Event JTCOM_IF_ScanEvent As ScanEventHandler
    '在需要的地方触发事件
    RaiseEvent JTCOM_IF_ScanEvent(string)如果不行说一下,我再看看
      

  2.   

    修改了一下注释以及如何注册事件委托'先定义委托
    Delegate Sub ScanEventHandler(ByVal string As String)
     '然后在Panalib.JTCOM_IF类里面定义事件
    Public Event JTCOM_IF_ScanEvent As ScanEventHandler
     '在Panalib.JTCOM_IF类中需要的地方触发事件
    RaiseEvent JTCOM_IF_ScanEvent(string)
    '最后在其他调用Panalib.JTCOM_IF的类中注册事件
    AddHandler Panalib.JTCOM_IF.ScanEvent, AddressOf  JTCOM_IF_ScanEvent
      

  3.   


    不可以啊,ScanEventHandler是SDK中已经定义好的Delegate Sub ScanEventHandler() 不带参数
    Panalib.JTCOM_IF.ScanEvent也是SDK中已经定义好的事件
    还有AddressOf 后面不能跟事件吧?不应该是定义的方法么?
      

  4.   

    昨天写的有点乱了,不好意思误导了你。AddressOf后面跟的是要调用的方法
    好像你的写法本身(AddHandler Panalib.JTCOM_IF.ScanEvent, AddressOf JTCOM_IF_ScanEvent)没有问题,写成AddHandler Panalib.JTCOM_IF.ScanEvent, New ScanEventHandler(AddressOf JTCOM_IF_ScanEvent)也可以,这样你就看到了New ScanEventHandler。我写了个简单的测试代码,就是在一个窗口上放了格按钮,可以正常出发OnScan事件的(OnScan替换成你的项目中触发ScanEvent的方法)。你是不是没有这个方法,所以没执行啊?
    Public Partial Class MainForm
    Dim jtCom As New Panalib.JTCOM_IF()
    Public Sub New()
    ' The Me.InitializeComponent call is required for Windows Forms designer support.
    Me.InitializeComponent() 'AddHandler Panalib.JTCOM_IF.ScanEvent, New ScanEventHandler(AddressOf JTCOM_IF_ScanEvent)
    AddHandler Panalib.JTCOM_IF.ScanEvent, AddressOf JTCOM_IF_ScanEvent
    End Sub

    Public Sub JTCOM_IF_ScanEvent()
    MessageBox.Show("Fired")
    End Sub

    Sub Button1Click(sender As Object, e As EventArgs)
    jtCom.OnScan()
    End Sub
    End ClassModule Panalib
    Delegate Sub ScanEventHandler()
    Public Class JTCOM_IF
    Public Shared Event ScanEvent As ScanEventHandler
    Public Shared Sub OnScan()
    RaiseEvent ScanEvent()
    End Sub
    End Class
    End Module
      

  5.   


    谢谢啦,现在明白了,我现在自己定义了一个Delegate ,不过出现新问题了 就是我回调Delegate 里面的参数 给textbox赋值时出现错误 Control.Invoke must be used to interact with controls created on a separate thread.
      

  6.   

    能看一下你的委托和怎么调用给textbox赋值的吗?