VB.net Sub Main() 过程
当你的VB应用程序开始执行以后,.net运行库使用你VB代码中的哪一部分,作为程序的起点?
如果你在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 窗口应用程序工程。 1:在代码编辑窗口打开窗口1的代码。 3:复制文章中下面的代码,粘贴到Form1. 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类到你的工程中去。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- bigdata——HBase+zookeeper+Hadoop集群构筑 之 Hbase集群构
- VB 中截取字符串函数Mid- 字符串转换为日期格式
- Lua源代码阅读(十)->总结 HelloWorld 在Lua中的运行步骤
- perl – 自动从CPAN安装缺少的模块
- wireshark学习——wireshark报错:Lua: Error during loadi
- 如何在Delphi中添加和使用自定义包/组件中的资源?
- Grails – 获得Groovy的葡萄!
- 第二章 高手心法 ——《箴言》第一章读书笔记之二
- OBIEE - NQSError 46036 in BI administration after patch
- perl – 如何让GD :: Graph不要写最后的X标签并覆盖我的其他