注册 登录
编程论坛 VB6论坛

请问vb6 类模块 里的 sub 加Public有什么用处

tansuoufo 发布于 2017-01-08 14:52, 4572 次点击
请问vb 类模块 里的 sub 加Public有什么用处?
function 或 sub 前面加不加Public 效果好像没差别?
不知道做什么用的?
5 回复
#2
renxiaoyao362017-01-08 14:58
Pubilc Sub 是 公用的
Private Sub 是 私用的

我一般喜欢在Sub前面加Private以声明改Sub只在本Form生效,至于Pubilc是说该Sub全工程有效,在多窗口调用里很好用。
不加Sub的话就是缺省,似乎是当做Private处理的。
Function是函数,类似于Sub,反正我的程序里面是吧Function和Sub当做一类玩意的,应为Sub也能返回值。
我记得Moudle 模块 里面可以加Function,那么这里就必须写Pubilc了

类似的 在 模块 里声明全工程变量必须按如下格式
Pubilc XX as Integer/String/Long 等
这样的话声明的XX就能在全工程调用了,而不是像在每个Form的通用里声明的一样只能在本Form里调用

特地声明:我的所有知识都是自学的,而非系统的学习,所有上述都是根据我的见解,如果有别的人回复了和我不同,请忽略我的回答。

[此贴子已经被作者于2017-1-8 15:01编辑过]

#3
tansuoufo2017-01-08 15:10
回复 2楼 renxiaoyao36
谢谢您的回答。
那些变量加Public我知道用处
但是在模块或类模块里的函数或过程加与不加,我试了好像form都可以跨过去调用并正确执行
不是说默认只能自己用的吗?

[此贴子已经被作者于2017-1-8 15:13编辑过]

#4
tansuoufo2017-01-08 15:17
我试了加Private,确实有区别,那么答案找到了,因为默认不加就是Pubilc
#5
renxiaoyao362017-01-08 15:57
回复 4楼 tansuoufo
我还真不知道默认是Pubilc,一直以为默认是Private,这反而还要谢谢你呢,长知识了
#6
风吹过b2017-01-08 17:40
默认不记得了。

窗体里用 PUBLIC
如果是变量,就相当于给这个窗体增加一个属性,不过这个属性窗体没有事件产生,需要自己掌控。
如果是过程,就相当于给这个窗体增加一个方法。

举个例子,MDI 工程中,有 三个子窗体,这三个子窗体数据显示和组织都不相同,
其中二个子窗体均需要提供打印功能。从MDI菜单里怎么调用打印功能。
我用的方法是:
1、每个窗体变量了一个全局变量和一个全局过程。
如,变量名:IsPrint   值 =0 或 1
在 load 窗体时,直接写好值。
过程名: Public sub FromPrint()
2、调用时:
if ActiveForm.isprint = 1 then     '如果窗体允许打印
   call ActiveForm.Fromprint       '那么调用打印
end if

--------------------
还有一种更简单粗暴的
不定义这个变量,
每个子窗体都定义这个过程,如果这个窗体不提供打印,那么这个过程的内容就是空白或就是一句提示。
调用时,就直接调用,不用判断了。

==============

1