如何显示基于引用的 C# 程序集事件触发的 VB.NET 窗体

本文关键字:事件 程序集 窗体 VB NET 引用 何显示 显示 于引用 | 更新日期: 2023-09-27 17:57:15

我第一次在这里问问题,所以如果我做得不好,请提前道歉。我在搜索中找不到任何东西。

我继承了一个 VB.NET 遗留的Windows应用程序项目。我想尽可能用 C# 编写代码的任何和所有新添加内容,包括新的 Windows 窗体。因此,我在 C# 程序集中有一个新的 Windows 窗体(不确定这是否是最佳方法)被 VB.NET Windows 应用程序引用。在从引用的程序集初始化 C# 窗体时,我向它传递所有必要的参数,我将从这些参数在 C# Windows 窗体中构建网格列和记录。到目前为止,这里没有问题。在 C# 网格的单元格双击事件上,我想显示引用 C# 程序集的应用程序中的现有 VB.NET Winform。我的问题是:我如何获得 VB.NET Windows 窗体的句柄以显示它,或者对此执行任何其他操作?循环引用显然是不允许的,那么如果可能的话,我该如何实现这一点,C# 或其他?

如何显示基于引用的 C# 程序集事件触发的 VB.NET 窗体

您应该能够向对象添加事件处理程序。

http://msdn.microsoft.com/en-us/library/6yyk8z93%28v=vs.90%29.aspx

一种方法是将通用表单创建处理程序传递给 C# Form,因为它是从您的 VB.NET 代码实例化的。这样,表单就不必知道它必须创建和显示的确切表单类型;它所知道的只是 这是一个Form ,如果你所要做的就是展示它,那就足够了。

还可以考虑将 C# Form单元格双击事件公开为可由 VB.NET 代码处理的公共事件。

如果在您的设计中有意义,第三种选择是使用充当桥梁的第三个组件。此程序集可以由 VB.NET 和 C# 程序集引用,并保留在这些程序集中实现/使用的接口类型。