嗨 我有一个工作非常小的vb.net项目,但它使用一个专有的com对象,这是在VB项目中有线来处理事件!vb.net到C#帮助
我已经改变了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
上面的代码创建对象被点击的按钮,每当对象获得的数据也引发一个事件时,将数据传递到传输前或接收前。
我只是不能似乎找出如何做到这一点的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;
}
但什么把手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#中使用它吗?
你尝试过一个转换器,如:http://www.developerfusion.com/tools/convert/vb-to-csharp/ – Matt
@Matt - 我的最爱之一。 –
感谢这显然得到了它的大部分,但一行我仍然有一个问题,阻止我编译它。 PM = Interaction.CreateObject(“ObjName.PManager”); 这仍然相同,谷歌表示,其在Microsoft.VisualBasic程序命名空间 但是我得到 错误名称“互动”不存在当前上下文 – Adrian