0

我第一次在这里提出问题,如果我做得不对,请提前道歉。我无法通过搜索找到任何东西。

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

4

2 回答 2

0

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

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

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

于 2014-04-08T12:32:53.463 回答
0

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

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

于 2014-04-08T12:37:33.220 回答