16

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

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

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

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

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

谢谢

4

3 回答 3

29

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

如果您不想使用该框架,请取消选中Enable application framework复选框,然后选择您要Sub Main用作Startup object的那个。然后,您可以创建一个带有Public Sub Main方法的模块,该方法将成为应用程序的入口点,就像在 C# 中的 Program.cs 中一样。

于 2012-05-10T13:15:23.753 回答
9

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

默认入口点是Main().

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

Shared Sub Main()     
   ' Starts the application.
     Application.Run(New Form1())
End Sub
于 2012-05-10T13:13:17.433 回答
5

正如史蒂文的回答所说,默认情况下,您不需要像Program.csVB.NET 应用程序中的任何东西。但是,如果您想替换标准启动代码,您可以添加一个新模块并将其选为启动对象。

首先,右键单击项目并选择添加:模块...。您可以为模块命名任何您喜欢的名称,但我将其命名为 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 上的另一件事(如何:更改应用程序的启动对象)

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

于 2013-03-14T18:28:56.003 回答