如何在VB6应用程序中设置.NET组件火灾事件?
我有一个VB6应用程序,它引用并调用.NET GUI组件。NET GUI组件有一个datagrid。我想双击数据网格中的一行,以使VB6应用程序中的窗体显示出来如何在VB6应用程序中设置.NET组件火灾事件?,.net,vb6,com-interop,.net,Vb6,Com Interop,我有一个VB6应用程序,它引用并调用.NET GUI组件。NET GUI组件有一个datagrid。我想双击数据网格中的一行,以使VB6应用程序中的窗体显示出来 我该怎么做呢?我假设您正在通过COM interop访问.NET对象,在这种情况下,您只需在控件中创建一个普通事件,就可以像处理任何其他控件事件一样在使用者(VB6)中获取该事件 public MyNetClass { public delegate void RowDoubleClickedDelegate(int Row);
我该怎么做呢?我假设您正在通过COM interop访问.NET对象,在这种情况下,您只需在控件中创建一个普通事件,就可以像处理任何其他控件事件一样在使用者(VB6)中获取该事件
public MyNetClass {
public delegate void RowDoubleClickedDelegate(int Row);
public event RowDoubleClickedDelegate RowDoubleClicked;
protected void OnRowDoubleClicked(int row) {
if (RowDoubleClicked != null) {
RowDoubleClicked(row);
}
}
}
在VB6中:
Dim WithEvents NetObect As MyNetClass
Private Sub MyNetClass_RowDoubleClicked(ByVal Row As Long)
MsgBox CStr(Row) & " clicked"
End Sub
通过在VB 6中使用
with events
关键字声明VB.NET组件,您应该能够轻松地做到这一点。更多信息是。它不是一个用户控件,而是一个显示表单的.NET DLL。VB6应用程序如何与.NET库通信?如果通过COM互操作,同样适用,但您需要按照Cody的建议在声明中使用with events
。这是通过COM互操作实现的。我仍然不明白-如果我在C#中的一个方法中,我应该编写什么代码来触发VB6事件?this.eventname(value1)代码>请参阅。然后,这些事件通过COM互操作自动提供给消费对象。如果.NET DLL也处理该事件,会发生什么。哪个代码将被触发,或者两者都会被触发?