【问题标题】:What is the equivalent of Program.cs in VB.NETVB.NET 中 Program.cs 的等价物是什么
【发布时间】:2012-05-19 01:34:51
【问题描述】:

VB.NET WinForms 应用程序中 Program.cs 的等价物是什么?

我需要将我的 .CS 应用程序迁移到 VB.NET。

由于我在 Program.cs 中的 WinForms 项目中没有表单,因此我执行以下操作:

Application.Run(new MyForm(parm1, parm2);

如何在 VB.NET 中移动这段代码?

谢谢

【问题讨论】:

  • 无法理解你的愤怒。我之前搜索过,谷歌给我的答案没有让我满意。 @SteveDog 清除了我所有的疑虑,并帮助我使我的应用程序正常运行。
  • 避免像@Ramhound 这样的投诉的一种方法是显示您在搜索时发现的内容,并解释为什么它不令人满意。无论哪种方式,我很高兴你问,因为答案帮助了我。
  • 我同意 Don Kirkby 的观点,当我用谷歌搜索“vb.net program.cs”时,这个问题出现在顶部。

标签: c# vb.net winforms


【解决方案1】:

正如Steven's answer 所说,默认情况下,VB.NET 应用程序中不需要像Program.cs 这样的东西。但是,如果您想替换标准启动代码,您可以添加一个新模块并选择它作为启动对象。

首先,右键单击项目并选择添加:模块...。您可以为模块命名任何您喜欢的名称,但我将其命名为 Program.vb 以与 C# 默认值保持一致。粘贴以下代码:

Module Program
    Public Sub Main()
        Application.Run(New Form1()) ''//Use your main form here
    End Sub
End Module

接下来,右键单击项目并选择“属性”。在应用程序选项卡上,取消选中“启用应用程序框架”。然后将启动对象更改为Program。还有一个名为 Sub Main 的选项,我认为它可以在任何位置运行 Main() 子例程。

现在您已经替换了标准启动代码,您可以将其他内容添加到您的 Main() 子例程中。我注意到MSDN (How to: Change the Startup Object for an Application) 上的另一件事:

当使用自定义 Sub Main 过程作为 Startup 对象时,不会执行应用程序事件(StartupShutdownStartupNextInstanceUnhandledException)中的代码。

【讨论】:

  • 感谢您的额外说明。从 C# 迁移到 VB .NET 必然会引发类似这样的问题。
【解决方案2】:

不管是 Program.cs 还是 YouNameIt.cs。

默认入口点是Main()

此代码应该可以工作,除非您有另一个入口点(可以在项目设置中指定)。

Shared Sub Main()     
   ' Starts the application.
     Application.Run(New Form1())
End Sub

【讨论】:

  • 这需要Module吗?如果是这样,Shared 关键字是否多余?
【解决方案3】:

默认情况下,VB.NET 应用程序使用神秘的 Windows 应用程序框架,这意味着构建过程会为您添加一个入口点,该入口点会自动运行您用作主窗体的任何窗体。您可以通过项目属性 > 应用程序 > Windows应用程序框架属性访问这些设置。

如果您不想使用该框架,请取消选中启用应用程序框架复选框,然后选择您要使用Sub Main 作为您的启动对象强>。然后,您可以使用 Public Sub Main 方法创建一个模块,该方法将作为应用程序的入口点,就像在 C# 中的 Program.cs 中一样。

【讨论】:

  • 感谢您的澄清!
猜你喜欢
  • 1970-01-01
  • 2011-05-23
  • 2012-08-30
  • 1970-01-01
  • 2015-06-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多