你好,我有一个非常小的vb.net项目,在其中使用了一个专有的com对象来处理事件。我已经更改了com对象的名称,但是以下代码在语法上是正确的:
Public Class Form1
Private WithEvents PM As comObj.PManager
Delegate Sub SetTextCallback([text] As String)
Private Function PreTransmit(ByVal s As String) As String Handles PM.PreTransmit
Me.SetText(s)
Return s
End Function
Private Function PreResponse(ByVal s As String) As String Handles PM.PreResponse
Return s
End Function
Private Sub SetText(ByVal [text] As String)
If Me.textBox1.InvokeRequired Then
Dim d As New SetTextCallback(AddressOf SetText)
Me.Invoke(d, New Object() {[text]})
Else
Me.textBox1.Text = [text]
End If
End Sub
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
PM = CreateObject("ObjName.PManager")
End Sub
End Class
当用户单击按钮时,以上代码将创建对象,并且每当该对象获取数据时,它会触发一个事件,将数据传递到pretransmit或prereceive中。
我似乎无法弄清楚如何在C#中实现这个功能。
VB
Private WithEvents PM As comObj.PManager
c#
private comObj.PManager PM;
那么 WithEvents 怎么办呢?
VB
Private Function PreResponse(ByVal s As String) As String Handles PM.PreResponse
Return s
End Function
c#
private string PreResponse(string s)
{
return s;
}
但是 Handles PM.PreResponse 怎么办?
VB
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
PM = CreateObject("ObjName.PManager")
End Sub
c#
private void Button1_Click(System.Object sender, System.EventArgs e)
{
PM = Interaction.CreateObject("ObjName.PManager");
}
我不确定我哪里出错了!?
我能写一个vb.net类并在c#中使用它吗?