.net - 如何在VB6应用程序中拥有.NET组件触发事件?

标签 .net vb6 com-interop

我有一个 VB6 应用程序,它引用并调用 .NET GUI 组件。 .NET GUI 组件有一个数据网格。我想要双击数据网格中的一行来显示 VB6 应用程序中的表单?

我怎样才能做到这一点?

最佳答案

我假设您正在通过 COM 互操作访问 .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

关于.net - 如何在VB6应用程序中拥有.NET组件触发事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8559040/

相关文章:

.net - iOS <-> PC USB 通讯

mysql - Vb6 记录更新错误

c++ - 如何为不同的 HRESULT 值正确使用 On Error Goto

visual-studio - 为 COM 互操作注册 x64 程序集

c# - 如何在 Windows 服务中实现连续的生产者-消费者模式

c# - 为什么必须使用 "out"而不是 ref?

C# - 在 Windows 中检索目录下所有只读文件的列表

string - Visual Basic字符串问题

c# - 如何将 COM 对象包装在 native .NET 类中?

.NET 异常杀死 VB6 应用程序