如果你在visual studio.net中创建一个vb.net的windows窗口工程,在你编译时,visual studio.net会自动地给你的程序的可执行文件中加入什么呢?
哪里是最后的地方,你去控制你程序的飞溅窗口,登陆窗口,主窗口还有应用程序级别数据和行为?
上面所有的问题都可以回答为:the Sub Main() procedure
作为一个visual Studio.net的新手,这是一个在创建VB.net窗口程序时很容易忽略的一个很重要的问题。如果你没有意识到需要Sub Main(),不加入Sub Main()代码,visual Studio 很奇怪地在你编译你的应用程序时自动会加入一个Sub Main()方法到你的程序的可执行文件中去。你从来不会发现它。
这个自动加入Sub Main()方法是非常好的当你在学怎么写一个hello world应用程序。但是这个特性将会阻碍你开始写一个真正的应用程序。
这篇文章将会解释怎么样创建你自己的Sub Main() procedure 和怎么用它去控制你的应用程序的开始和关闭。
Sub Main() Procedure 示例代码:
<STAThread()> _
Shared Sub Main()
' Declare a variable named frm1 of type Form1.
Dim frm1 As Form1
' Instantiate (create) a new Form1 object and assign
' it to variable frm1.
frm1 = New Form1()
' Call the Application class' Run method
' passing it the Form1 object created above.
Application.Run(frm1)
End Sub
上面这段代码展示了一个简单的Sub Main() procedure,当你加入一个窗口到你的代码中时,它会被应用。一旦加了这段代码,Visual Studio.net就会意识到这个窗口有Sub Main() procedure代码,在编译时就会用这段代码代替它自动加入的那段Sub Main() procedure。
测试代码:
1:新建一个VB.NET 窗口应用程序工程。
Public Class Form1
Inherits System.Windows.Forms.Form
Windows Form Designer generated code
<STAThread()> _
Shared Sub Main()
' Declare a variable named frm1 of type Form1.
Dim frm1 As Form1
' Instantiate (create) a new Form1 object and assign
' it to variable frm1.
frm1 = New Form1()
' Call the Application class' Run method
' passing it the Form1 object created above.
Application.Run(frm1)
End Sub
End Class
4:运行程序。
你的Sub Main() 代码为程序提供了一个入口点。Form1将要被打开,如果你加入了Sub Main()代码。不同在于你自己编写的Sub Main() procedure代替了Visual Studio.net给你自动加入的代码。
你已经迈出了走向掌握使用Sub Main() procedure的第一步。
Move Sub Main() to a Class
下一篇文章会解释怎么样把Sub Main() procedure 移动到一个类中。
加入一个叫AppMgr的VB.NET类到你的工程中去。