注册 登录  
 加关注
查看详情
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

谷海涛 廊坊师范学院信息技术提高班十四期

当你的才华还撑不起你的野心时,就应该静下心来学习!

 
 
 

日志

 
 

学习VB过程中遇到的问题解答  

2016-12-06 21:00:09|  分类: VB |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

1.VBPublicPrivate定义函数过程有何区别?

 在英文中Public的含义是:共有的、公有的意思;Private的含义是:私有的、私人的意思。

我们先看看Public的含义:他的含义既然是共有的、公有的,就表明它是使用在公有场合,可供任何窗体和过程调用。是公有的函数、过程等声明时使用的,范围较大。

再看Private的含义:它的用途是定义私有的函数、过程时使用,它所定义的函数、过程只有在其所定义之处使用,其它地方不能使用,其范围较小。

其实Public定义的函数、过程最大的缺点是容易被其他的程序和代码访问,就不利于它的保密,而Private定义的责其安全性和保密性有了很大的保证。

但在一般小的VB程序中,调用API函数是使用模块就用Public,而不使用模块则将它改成Private就是了,没有太大的区别。

而在大的程序或对操作系统的内部进行操作的话,就要注意使用了。

总而言之,合理的使用PublicPrivate是有好处的。不仅可以提高程序的运行速度更重要的是可以提高程序的可靠性。

2.三种级别的变量局部变量、窗体和模块变量、全局变量的区别?

 vb中有三种级别的变量:1、局部变量2、窗体和模块变量3 、全局变量

 1、)局部变量

 即只在定义它的事件过程中有效(能够被调用)。 所谓事件过程即:形如 Command2_Click()之类的响应事件,应该注意的是Form_Load()也是和Command2_Click()同等级别的事件过程。

'Private Sub Form_Load()

' Dim s As Integer

      s = 1

'End Sub

'其中s即为局部变量,只在Form_Load()过程中有作用。若在别的事件过程如Command2_Click()中调用的话,就会出现“变量未定义”的错误(注意!这是在使用了强制声明 Option Explicit之后才会提示错误的,否则的vb系统会自动给它赋值,不会提示错误的!)

' 2、)窗体和模块变量

即只能够在定义它的窗体或模块中被调用,不能跨模块或窗体使用 所谓窗体就是大家熟知的form1之类的窗口,模块即module。它们是一个级别的

'窗体和模块变量的定义 有两种方法:1、在窗体模块的声明部分用dim private 声明 2、在标准模块的声明部分用dim private 声明 (注意!!这里的“窗体模块的声明部分”即窗体中的“通用”这个过程)如图

这里 j d 均为窗体和模块变量它们能在frm1中的 任何位置调用,但不能跨窗体如在frm2中调用

((3)全局变量

即在整个程序(工程)的任何部分都可以使用的变量。这个据我实验是只能在标准模块中用public定义。

3.类模块与标准模块的区别?

标准模块和类模块的区别:

1标准模块实际上就是一个存放着变量和过程的一个文件,它是非对象化的,而类模块是一个自定义的类,主要是通过面向对象的。

2标准模块和类模块的存储数据方法不同。标准模块的数据只有一个备份,每次读取时都是相同的值,而类模块中的数据是相对于类模块获立存在的。

3当变量在标准模块中声明为Public时,则它在工程中任何地方是可见的;而类模块中的Public变量,只有当对象变量含有对某一类实例的引用时才能访问。

4类模块必须要先在程序里进行引用,然后才可以使用。而公共模块则不须要进行引用,就可以直接使用。

5类模块是集结了公共模块中具有相同的方法或属性的模块内容。

 无论类还是普通模块都是为了代码重用的目的而来的.

区别在于模块只能做到函数(即:计算)的重用,模块不包含私有数据,它只能每次从外部得到数据去处理,然后再交给外部.

而类则更高一层,它其实是计算和数据的一个整体,即它可以拥有私有的数据,并且在该类的所有函数都可以直接处理这些私有数据.其实类更接近于自定义数据类型,而不是模块.

 类将数据与操作封装在一起了.

类是一个模板,使用时要首先实例化,然后才能使用.

比如一个类:class1

使用时要  dim obj1 as new class1  ,然后可以使用

obj1.(函数)  obj1.(属性)等等.

4.vb中,end unload 和Hide 的区别?

End 语句

结束一个过程或块。

注意: End 语句不调用 UnloadQueryUnload、或

Terminate 事件或任何其它 Visual Basic 代码,只是生硬地终止代码执行。

Unload 语句

从内存中卸载窗体或控件。

在卸载窗体前,会发生 Query_Unload 事件过程,然后是 Form_Unload 事件过程。在其中任一过程中设置 cancel 参数为 True 可防止窗体被卸载。若为

MDIForm 对象,先发生 MDIForm 对象的 Query_Unload 事件过程,接着是各 MDI 子窗体 的 Query_Unload 事件过程和 Form_Unload

事件过程,最后是 MDIForm 对象的 Form_Unload 事件过程。

注意 在卸载窗体时,只有显示的部件被卸载。和该窗体模块相关联的代码还保持在内存中。

form.hide 是将窗体隐藏 ,引发queryunload 事件

5.VB中的Unload事件与QueryUnload事件有什么不同?

1QueryUnload发生在Unload之前

2QueryUnloadUnload都可以阻止窗体卸载

3QueryUnload可以检测窗体的卸载方式(比如是点击窗体右上角的X卸载,还是在软件代码中用Unload Me命令卸载),Unload则无此功能

4、当程序有多个窗体时【MDI窗体。因为只有在MDI架构中,窗体之间才是互有关系的(即主窗体是父亲,所有子窗体都是兄弟姐妹),这样的话QueryUnload的触发才有实际意义(比如某个子窗体卸载可能会影响其他的兄弟窗体,所以有必要在卸载前通知一下)。】,任何一个窗体卸载,则所有窗体的QueryUnload都会被触发(换句话说就是即使不是本窗体关闭QueryUnload事件也会触发的),而Unload事件则只发生在卸载的窗体中。

5、如果用通俗的话来解析就是:QueryUnload是向所有窗体宣布“我要卸载了!谁有不同意见就说”,而Unload只是在自身内部通知要卸载。


 

 

  评论这张
 
阅读(60)| 评论(24)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018