以前看到sub main 时候,不太懂比较模糊,最近在敲学生信息系统的例子时,又接触到这个“函数”,这次就好好查了一下,主要有两个用途:
     1. 设置启动窗体
     在缺省情况下,应用程序中的第一个窗体被指定为启动窗体。应用程序开始运行时,此窗体就被显示出来(因而最先执行的代码是该窗体的    Form_Initialize   事件中的代码)。如果想在应用程序启动时显示别的窗体,那么就得改变启动窗体。
要改变启动窗体,请按照以下步骤执行:   
从 “ 工程 ” 菜单中,选取 “ 工程属性 ” 。 选取 “ 一般 ” 。
在 “ 启动对象 ” 中,选取要作为新启动窗体的窗体。

没有启动窗体时的启动
       有时候也许要应用程序启动时不加载任何窗体。例如:可能想先运行装入数据文件的代码,然后再根据数据文件的内容决定显示几个不同窗体中的哪一个。要做到这 一点,可在标准模块中创建一个名为    Main   的子过程,如下面的例子所示。
Sub   Main()
      Dim   intStatus   As   Integer      
      ' 调用一个函数过程来检验用户状态。
      intStatus   =   GetUserStatus
      ' 根据状态显示某个启动窗体。
      If   intStatus   =   1   Then
            frmMain.Show
      Else
            frmPassword.Show
      End   If
这个过程必须是一个子过程,且不能在窗体模块内。欲将    Sub   Main   过程设为启动对象,可从 “ 工程 ” 菜单中,选取 “ 工程属性 ” ,再选 “ 一般 ” ,然后从 “ 启动对象 ” 框中选定 “Sub   Main” 。
   2. 显示启动时的快速显示  
如果启动时有一个较长的执行过程,例如要从数据库中装入大量数据或者要装入一些大型位图,这时可能希望在启动时给出一个快速显示。快速显示是一种窗体,它 通常显示的是诸如应用程序名,版权信息和一个简单的位图等内容。启动    Visual   Basic   时所显示的屏幕就是一个快速显示。
要显示快速显示,需用    Sub   Main   过程作为启动对象,并用    Show   方法显示该窗体:
Private   Sub   Main()
      ' 显示快速显示。
      frmSplash.Show
      ' 在此处添加启动过程。
      ...
      ' 显示主窗体并卸载快速显示。
      frmMain.Show
      Unload   frmSplash
End   Sub
当一些启动例程正在执行时,快速显示能吸引用户的注意,造成应用程序装载很快的错觉。当这些启动例程完成以时,可以装入第一个窗体并使快速显示卸载。

对于快速显示的设计来说,尽量简单为好。如果使用大量位图或者大量控件,则快速显示本身装入将会变慢。

SUb Main 的用途相关推荐

  1. python的断点调试

    2019独角兽企业重金招聘Python工程师标准>>> http://http://control.blog.sina.com.cn/admin/article/article_ad ...

  2. TypeScript 里的 module 解析过程 - Module Resolution

    Module Resolution 模块解析是编译器用来确定导入所指内容的过程.考虑像 import { a } from "moduleA"; 这样的导入语句.为了检查 a 的任 ...

  3. Head First Java学习笔记(2):类与对象

    类 1.类是定义同一类所有对象的变量和方法的蓝图或原型. 2.实例变量的值由类的每个实例提供.当创建类的实例时,就创建了这种类型的一个对象,然后系统为类定义的实例变量分配内存.然后可以调用对象的实例方 ...

  4. python linux 单步调试,python的断点调试

    python的断点调试(转自:http://control.blog.sina.com.cn/admin/article/article_add.php) pdb这个功能好牛啊,可以在命令行设置也可以 ...

  5. shell脚本 -- 用途替换所有json文件(main.json 除外)中的 ios下载链接

    #!/bin/bash #脚本用途 替换所有json文件(main.json 除外)中的 ios下载链接 #调用格式 "xxx.sh" (脚本名称) "ios||and& ...

  6. android之android.intent.category.DEFAULT的用途和使用

    1.要弄清楚这个问题,首先需要弄明白什么是implicit(隐藏) intent什么是explicit(明确) intent. Explicit Intent明确的指定了要启动的Acitivity , ...

  7. using的几种用途

    using 常用来引用命名空间 1 using System; 2 using System.Data; 3 using System.Data.SqlClient; 4 using System.C ...

  8. 多线程编程有什么用途_C++ 多线程编程 (一)

    What is thread? In computer science, a thread of execution is the smallest sequence of programmed in ...

  9. 实际上,Python 3.3中新的“ yield from”语法的主要用途是什么?

    本文翻译自:In practice, what are the main uses for the new "yield from" syntax in Python 3.3? I ...

最新文章

  1. Jquery实现form表单回填数据
  2. 【BZOJ】3224: Tyvj 1728 普通平衡树
  3. bash 判断 os 版本_专家:鸿蒙OS初登手机令人惊艳,但全面商用至少还要2年
  4. Android 使用Adapter适配器模式实现无线轮播BannerView
  5. pupload 文件分块 php,基于Plupload实现Base64分割的文件上传方案
  6. Vue框架搭建快速入门
  7. leetcode python3 简单题122. Best Time to Buy and Sell Stock II
  8. JS对大陆车牌照的归属地(省份和城市)加载和显示
  9. 公司用的非标普通自动化用单片机还是plc_合格电气自动化工程师必备十大技能...
  10. ELK日志分析系统理论加实操演练!!
  11. JAVA_OPTS设置详解
  12. php获取steam装备信息,api – 获取某人的Steam库存
  13. 信任与背叛的折磨--电影
  14. cmd无法进入其他盘符问题解决方案
  15. matlab的gccphat转C语言,Python中的GCCPHAT互相关
  16. OneNav一为主题魔改教程(七):继续完善本地网址功能,重复的网址不让保存--洞五洞洞幺
  17. 快解析教你,快速修改3389端口
  18. java mongodb 多表关联查询,多条件查询,分页,排序
  19. 家里的WIFI信号时断时续,工作人员真正来检查说“没毛病”,是为什么呢?
  20. 经济型EtherCAT运动控制器(十):EtherCAT总线快速入门

热门文章

  1. Kindle阅读器(KPW、KV、KO)怎么导入电子书?
  2. kpw4换壁纸_【kindle paperwhite4使用30天总结报告】PjTime.COM 评测试用
  3. Servlet[SpringMVC]的Servlet.init()引发异常
  4. java发送邮件(一封邮件发给多人)
  5. SpringBoot控制台打印SQL
  6. nginx安装及安全配置和转发代理
  7. 新南威尔士计算机科学就业方向,新南威尔士大学计算机科学专业
  8. 开源协议是什么?有哪些?如何选择?
  9. :) 程序员的骚语句、骚操作
  10. 企业级虚拟化实战之KVM——从KVM到云计算OpenStack