VB应用程序的启动与退出设计在缺省情况下,应用程序中的第一个窗体被指定为启动窗体。如果想在应用程序启动时显示别的窗体,就得改变启动窗体,其方法如下:123。在缺省情况下,应用程序中的第一个窗体被指定为启动窗体。应用程序开始运行时,此窗体就被显示出来(因而最先执行的代码是该窗体Form_Initialize事件中的代码)。如果想在应用程序启动时显示别的窗体,就得改变启动窗体,其方法如下:1234没有启动窗体时的启动有时候需要在应用程序启动时不加载任何窗体。例如想先运行装入数据文件的代码,然后再根据数据文件的内容决定显示几个不同窗体中的哪一个。为此,可在标准模块中创建一个名为Main的子过程,并将其设为启动对象。SubMain()DimintStatusAsInteger′调用一个函数过程来检验用户状态intStatus=GetUserStatus′根据状态显示某个启动窗体IfintStatus=1ThenfrmMainShowElsefrmPasswordShowEndIf注意:这个过程必须是一个子过程,且不能在窗体模块内。结束应用程序当所有窗体都已关闭并且没有代码正在执行时,事件驱动的应用程序就停止运行。如果最后一个可见窗体关闭时仍有隐藏窗体存在,那么,应用程序表现为已经结束了(因为没有可见的窗体),可实际上却仍在继续运行,直至所有隐藏窗体都关闭为止。之所以出现这种情况,是因为对已卸载窗体的属性或控件的任何访问,都将导致隐含地、不予显示地加载那个窗体。为了避免出现这类问题,最好的办法是确保所有的窗体都已卸载,可以使用Forms集合和Unload语句。例如在主窗体上可以用一个名为cmdQuit的命令按钮来退出程序,如果应用程序只有一个窗体,则Click事件过程可简单为:PrivateSubcmdQuit_Click()UnloadMeEndSub如果应用程序使用多窗体,通常把代码放入主窗体的Unload事件过程可以卸载这些窗体。可以使用Forms集合确保找到并关闭所有窗体。PrivateSubForm_UnloadDimiasInteger′在窗体集合中循环并卸载每个窗体Fori=0toFormsCount-1UnloadForms(I)NextEndSub相关阅读:应用MFC开发高级应用程序用户学习并使用vb来开发Windows应用的时间是最短的。[摘要]:目前在Windows下开发应用程序的工具虽然很多,但是C/C++作为一种非常成熟和高效的开发语言在大型复杂项目的开发中仍然得到了广泛应用。如果在各个视口中指明具体的窗口名字。VB程序退出按钮我编了一个程序(是可执行文件)。我现在想加一个CommandButton,使得点了它之后这个程序可以自动退出。请问怎么弄?我VB才上了2节课,所以讲简单一点谢谢啦!不过我又想到一个问题,我想让Command1这个按钮点一下后使得Timer1停止,同时让Command1的Caption变成继续,而点击继续后,Comamnd1可以变成暂停,且同时Timer1.Enabled=True请问怎么办到?谢谢啦提问者采纳2010-10-1019:40在窗体上添加一个按钮,编辑代码:PrivateSubCommand1_Click()UnloadMeEndSub这是正常退出,会执行PrivateSubForm_Unload(CancelAsInteger)内容,例如退出确认之类(如果你写了的话)如果你有多个窗体,那么PrivateSubCommand1_Click()EndEndSub此乃强制结束,跳过一切步骤,直接结束。类似结束进程。VB查找文件(文件夹)VB查找文件(文件夹)2007-02-0905:10以查找D:\下所有文件夹为例:在窗体上添加一个CommandButton,它的单击代码如下:PrivateSubCommand1_Click()mypath=D:\'将要查找的目录赋值给mypathMyName=Dir(mypath,vbDirectoryOrvbHiddenOrvbNormalOrvbReadOnlyOrvbSystem)'找到第一个入口,DIR返回找到的第一个文件(文件夹)DoWhileMyName'开始循环IfMyName.AndMyName..Then'忽略当前目录和子目录'确保变量MyName取得的值是文件夹名If(GetAttr(mypath&MyName)AndvbDirectory)=vbDirectoryThenPrintMyName'在窗体上打印出找到的文件夹EndIfEndIfMyName=Dir'得到下一个文件名LoopEndSub运行后单击命令按钮就可在窗体上显示出D:\所有的文件夹Dir函数返回一个String,用以表示一个文件名、目录名或文件夹名称,它必须与指定的模式或文件属性、或磁盘卷标相匹配。语法Dir[(pathname[,attributes])]Dir函数的语法具有以下几个部分:部分描述pathname可选参数。用来指定文件名的字符串表达式,可能包含目录或文件夹、以及驱动器。如果没有找到pathname,则会返回零长度字符串()。attributes可选参数。常数或数值表达式,其总和用来指定文件属性。如果省略,则会返回匹配pathname但不包含属性的文件。设置值attributes参数的设置可为:常数值描述vbNormal0(缺省)指定没有属性的文件。vbReadOnly1指定无属性的只读文件vbHidden2指定无属性的隐藏文件VbSystem4指定无属性的系统文件vbVolume8指定卷标文件;如果指定了其它属性,则忽略vbVolumevbDirectory16指定无属性文件及其路径和文件夹。注意这些常数是由VBA所指定的,在程序代码中的任何位置,可以使用这些常数来替换真正的数值。说明Dir支持多字符(*)和单字符(?)的通配符来指定多重文件。由于Macintosh不支持通配符,使用文件类型指定文件组。可以使用MacID函数指定文件类型而不用文件名。比如,下列语句返回当前文件夹中第一个TEXT文件的名称:Dir(SomePath,MacID(TEXT))为选中文件夹中所有文件,指定一空串:Dir()在MicrosoftWindows中,如果在Dir函数中使用MacID函数,将产生错误。任何大于256的attribute值都被认为是MacID函数的值。在第一次调用Dir函数时,必须指定pathname,否则会产生错误。如果也指定了文件属性,那么就必须包括pathname。Dir会返回匹配pathname的第一个文件名。若想得到其它匹配pathname的文件名,再一次调用Dir,且不要使用参数。如果已没有合乎条件的文件,则Dir会返回一个零长度字符串()。一旦返回值为零长度字符串,并要再次调用Dir时,就必须指定pathname,否则会产生错误。不必访问到所有匹配当前pathname的文件名,就可以改变到一个新的pathname上。但是,不能以递归方式来调用Dir函数。以vbDirectory属性来调用Dir不能连续地返回子目录。提示:由于文件名并不会以特别的次序来返回,所以可以将文件名存储在一个数组中,然后再对这个数组排序。GetAttr函数返回一个Integer,此为一个文件、目录、或文件夹的属性。语法GetAttr(pathname)必要的pathname参数是用来指定一个文件名的字符串表达式。pathname可以包含目录或文件夹、以及驱动器。返回值由GetAttr返回的值,是下面这些属性值的总和:常数值描述vbNormal0常规vbReadOnly1只读vbHidden2隐藏vbSystem4系统文件vbDirectory16目录或文件夹vbArchive32上次备份以后,文件已经改变vbalias64指定的文件名是别名。注意这些常数是由VBA指定的,在程序代码中的任何位置,可以使用这些常数来替换真正的值。说明若要判断是否设置了某个属性,在GetAttr函数与想要得知的属性值之间使用And运算符与逐位比较。如果所得的结果不为零,则表示设置了这个属性值。例如,在下面的And表达式中,如果档案(Archive)属性没有设置,则返回值为零:Result=GetAttr(FName)AndvbArchive如果文件的档案属性已设置,则返回非零的数值vb查找文件2011-04-1609:09gsplhtlxg|分类:VB|该问题已经合并到我想设计一个程序,里面有一个command1,点击这个按钮后查找一个目录的文件,如果没有,继续执行代码,如果有,就打开一个窗体。谁会?谢谢问者采纳2011-04-1612:40ifdir(d:\1.txt)=then执行代码elseform2.showendif用VB实现文件查找功能在VB中要实现查找文件功能,我们可以利用VB的DIR函数进行递归来实现。每次使用DIR函数后,比较是否有要查找的文件,再检查是否有子目录,若有,利用递归继续查找,这样可对整个盘进行查找。下面是一个例子,查找DOS目录下的所有EXE文件,统计EXE文件的数目并列出文件名。本程序会查找当前路径下的所有文件和子目录,与WIN95的“包含子文件夹”的查找功能类似。程序与注释如下:1.在窗体中加一命令按钮Command1,Caption=查找示例,双击此按钮,写如下代码:PrivateSubCommand1-Click()Dimff()AsString′定义一个字符串数组用来保存找到的文件名称DimfnAsLong′保存找到的文件数目fn=TreeSearch(″C:%%dos″,″*.exe″,ff())Print″找到文件数目为″;fnForI=1TofnPrintff(I)NextEndSub2.插入一模块Modulel.bas,写如下代码:OptionExplicitPublicFunctionTreeSearch(ByValsPathAsString,ByValsFileSpecAsString,sFiles()AsString)AsLongStatic1FilesAsLong′文件数目DimsDirAsStringDimsSubDirs()AsString′存放子目录名称Dim1IndexAsLongIfRight(sPath,1)$#@60;$#@62;″%%″ThensPath=sPath&″%%″sDir=Dir(sPath&sFileSpec)′获得当前目录下文件名和数目DoWhileLen(sDir)1Files=1Files+1ReDimPreservesFiles(1To1Files)sFiles(1Files)=sPath&sDirsDir=DirLoop′获得当前目录下的子目录名称1Index=0sDir=Dir(sPath&″*.*″,16)DoWhileLen(sDir)IfLeft(sDir,1)$#@60;$#@62;″.″Then′skip.and..′找出子目录名IfGetAttr(sPath&sDir)AndvbDirectoryThen1Index=lIndex+1′保存子目录名RedimPreservesSubDirs(1To1Index)sSubDirs(1Index)=sPath&sDir&″%%″EndIfEndIfsDir=dirLoopFor1Index=1To1Index′查找每一个子目录下文件,这里利用了递归CallTreeSearch(sSubDirs(1Index),sFileSpsFiles())Next1IndexTreeSearch=1FilesEndFunction3.保存文件,按F5运行,单击命令按钮即可。程序运行环境:VB4.0(32位),中文WIN95。