如何在VB6应用程序中设置.NET组件火灾事件?

如何在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);

我有一个VB6应用程序,它引用并调用.NET GUI组件。NET GUI组件有一个datagrid。我想双击数据网格中的一行,以使VB6应用程序中的窗体显示出来


我该怎么做呢?

我假设您正在通过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也处理该事件,会发生什么。哪个代码将被触发,或者两者都会被触发?