关于调用过程的问题

来源:百度知道 编辑:UC知道 时间:2024/04/18 16:19:29
一个工程中包含两个名称分别为Form1、Form2的窗体,一个名称为md1Func的标准模块。假定在Form1、Form2和md1Func中分别建立了自定义过程,其定义格式为:
Form1中定义的过程:
Private Sub frmFunction1()
......
End Sub
Form2中定义的过程:
Public Sub frmFunction2()
......
End Sub
md1Func 中定义的过程:
Public Sub mdlFunction()
......
End Sun
在调用上述过程的程序中,如果不指明窗体或模块的名称,则以下叙述中正确的是______。
B、frmFunction2和mdlFunction过程能够在工程中各个窗体或模块中被调用

C、上述三个过程都只能在各自被定义的模块中调用

D、只有mdlFunction过程能够被工程中各个窗体或模块调用
答案为D

请问为什么Form2中定义的过程不能被工程中各个窗体或模块调用?谢谢!

PUBLIC声明的就是所谓的全局声明,作用域是能够在工程里面的任何地方访问它,它的生存期是会一直保存着数据地生存下来直至程序的关闭,但类模块里面不能用PUBLIC来声明变量,子程序和函数应该可以。
PRIVATE是私有变量,它的生存期跟PUBLIC一样,但作用域就只能在它声明的地方访问它,如模块,窗体里面的“通用地方”,和类模块
而DIM就是生存期和作用 域最小的变量类型,通常只在事件过程,SUB,FUCNTION里面声明,当它们执行完毕之后它的数据就会消失,而且在其他的地方也不能访问这个变量
最后就是STATIC,这个是静态变量,但这个变量在VB里面比较少用,它跟DIM 的差不多,只是生存期长一点

如果不指明窗体或模块的名称,调用的默认对象是本窗体,当然模块内的子程序和函数可以在任何窗体内调用,所以不指明窗体或模块的名称调用时只能调用本窗体内部及模块里的函数和子程序,所以只有mdlFunction过程能够被工程中各个窗体或模块调用,其他的只能调用该窗体内的子程序和函数及模块内的子程序和函数;但是调用的时候可以指明窗体,就完全可以互相调用了。