【问题标题】:Add vb.net forms to c# project将 vb.net 表单添加到 c# 项目
【发布时间】:2019-08-15 23:31:40
【问题描述】:

在 vb.net 中,Login FormSplash ScreenDialog Form 很不错。它们可通过 Visual Studio 的 Project > Add New Item... 对话框获得。

有没有一种方法可以将这些预构建的表单添加到 c# 项目中而无需费劲?

如果需要,可以在 vb.net 项目中重新实现或创建表单,然后从主 (c#) 项目中实例化,但如果有简单的解决方法,那就需要做很多工作。


vb.net 项目


c# 项目

【问题讨论】:

    标签: c# vb.net visual-studio


    【解决方案1】:

    我认为在 C# 中使用 VB.NET 表单是不可能的。直接。但是您可以在 VB.NET 表单周围放置一个包装器并将其编译为 DLL。然后,您可以使用 C# 应用程序中的 DLL。 here 给出了类似的建议(但反过来)。

    编辑:实际上您不需要包装器。您可以直接使用项目中的表单,如here所示。

    【讨论】:

    • 这是我过去为解决这个问题所做的。我希望我错过了一些简单的东西,并且在某处“隐藏”了表单的 c# 版本。
    • 你能解释一下你所说的“包装器”是什么意思吗?如果表单在单独的项目中,为什么您认为 C# 项目不能只使用new VBForm()
    • @John:对不起,弄错了。为了澄清,我进行了编辑。
    【解决方案2】:

    您可以通过(手动)转换 C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\ItemTemplates\VisualBasic\Windows Forms\1033 中的 .zip 文件来创建自己的 C# 版本的 VB 模板.

    1. 复制并解压所需模板
    2. 手动将 VB 代码转换为 C# 代码
    3. 修改并保存 .vstemplate XML 文件(另请参阅 schema 参考)
    4. 将文件压缩成一个新的 .zip
    5. 将 C# .zip 放到 C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\ItemTemplates\CSharp\Windows Forms\1033 中

    【讨论】:

    【解决方案3】:

    不,您不能在一个项目中结合多种语言。只需为您的 VB.NET 表单库创建一个单独的项目。

    【讨论】:

    • 我知道我不能在一个项目中组合语言,我只是想知道是否有类似的 c# 实现 vb.net 表单(就像你可以在其中创建用户表单一样c# 或 vb.net)。
    • 如果有类似的实现(来自 Microsoft),那么您会在“添加新项目”对话框中看到它。
    • 看看添加到 using , using Microsoft.VisualBasic 我过去做过这个.. 只需在 C# LOL 中编写代码
    【解决方案4】:

    您不能在同一个 project 中混合使用 VB 和 C#,但您可以将 C# 项目和 VB.NET 项目组合/分组到同一个 VS solution

    在这种情况下,您可以拥有一个用 vb.net 编写的类库,它承载您的特殊表单,以及一个用 C# 编写的 windows application,它引用另一个并使用这些表单,前提是您将它​​们公开。

    【讨论】:

      【解决方案5】:

      我能想到的唯一一件事就是让您的应用程序的主要项目成为一个 VB 项目。这是唯一允许您使用 My.Application.SplashScreen 属性的东西,并且您只能在应用程序的 VB 部分中使用它(尝试在 C# 中使用 Application.SplashScreen 将无法编译)。

      【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-06-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多