电脑爱好者,提供IT资讯信息及各类编程知识文章介绍,欢迎大家来本站学习电脑知识。 最近更新 | 联系我们 RSS订阅本站最新文章
电脑爱好者
站内搜索: 
当前位置:首页>> VB编程>>VB基本语法讲座及相关函数介绍之四:

VB基本语法讲座及相关函数介绍之四

来源:网络 | 2007-1-26 | (有3768人读过)


3.6 常用事件在程序设计中应用
 事件驱动模式是VB程序的主流,我们必须了解每一种对象会产哪些事件,以及这些事件产生的时机。随着对象在特性上的差异,可能产生的事件也会有的不同。下面先介绍一些常用事件,及在程序设计中应用。
生与灭事件
 事件                                     发生时机
 initialize                               窗体第一次被装入时
 terminate                              窗体最后一次被卸载时
 load                                      窗体每一次被装入时
 unload                                  窗体每一次被卸载时
 queryunload                         窗体每一次被卸载时

Initialize与load事件区别
 同样都是发生在窗体被装入时,两者很容易混淆,实际上intialize事件只有在窗体第一次被装入时发生,而load事件是在窗体每次被装入时都有发生。
 例:打开第三章formlife.vbp
什么程序代码写在intialize或load事件程序?
 1)控件的初始化:几乎都是放在load事件程序中,因为控件会随着窗体的卸载而一起被清除,所以每次被装入时都要进行初始化。
 2)变量的初始化:放在initialize事件程序中居多,因为变量的内容光焕发不会随着窗体的卸载波而消失。当然,如果希望每次窗体被装入时都有重新设置变量的内容,就要将变量的初始化放在load事件程序中。
如何禁止用户使用关闭按钮半闭窗体?
 在unload事件程序中含有一个cancel参数,如果将这个参数设置为true则窗体就不能关闭。
 


 例:在程序中不允许用户通过单击关闭按钮关闭窗体。
 Dim  switch  as  boolean
 form_unload
    if  not  switch   then
            cancel=true
    endif
     end sub
     command1_click
    switch=true
        unload  me
      end sub

Queryunloadd与unload事件有何区别
 queryunload比unload事件先发生。
 

Queryunload事件比unload事件多了一个unloadmode参数
              unloadmode可以取值                   意义
            vbformcontrolmenu(=0)                 用户单击窗体上的关闭按钮
            vbformcode(=1)                              unload语句调用
        vbappwindows(=2)                         用户结束windows操作系统
 也即可以利用unloadmode参数来判断用户是否用鼠标单击了窗体上的关闭按钮。借助queryunload事件的参数简化上面的程序。
 Private sub  command1_click()
    unload    me
 end  sub
 private sub form_queryunload(cancel as integer,unloadmode  as integer)
    if  unloadmode=vbformcontrolmenu  then cancel=true
 end sub

Queryunload事件另一个应用:
 经常用来检验程序结束前,窗口关闭前是否已经保存了该保存的东西,如果尚未保存,就显示一个对话框的信息。
对话框msgbox函数使用。
 Msgbox函数格式:
       msgbox(prompt  [,buttons][,title])
 prompt:是一个字符串,设置显示在对话框中信息内容。
 Buttons:(可选参数)用于显示对话框中显示按钮数。形式、图样见P77。
 Tile:(可选参数)设置显示在对话框标题中信息。

 例:练习使用msgbox函数(ch03\练习11.vbp)
  1)调用msgbox显示两个按钮(是,否),提示信息“要关闭 窗体吗?”。是,关闭窗体,否,
  2)调用msgbox提示信息为“操作错误”显示图标为
  3)调用msgbox提示信息为“没有满足条件的记录”,显示图 标为:
 例:(第三章练习5)编写一个程序,当用户单击窗体关闭按钮时,弹出对话框,要用户确定是否真的关闭窗体,是—关闭,否—取消关闭窗体。
状态改变的事件
                事件   发生时机
          activate                      当窗体成为活动窗口时
              deactivate                   当窗体不再是活动窗口时
              gotfocus                     对象获得焦点时
              lostfocus                     对象丢失焦点时
              rezies        对象大小改变时   

Activate与gotfocus事件有何区别
 只有窗体对象才有activate事件,其他控件都有没有activate事件,它表示窗体变成“活动窗口”
 gotfocus事件中,除了窗体对象含有这个事件外,其它控件如命令按钮,文本框、复选框、图片框等,也都有含有这个事件。
 当光标落在某个对象上(对象获得焦点时)则会发生gotfocus事件。
 例:当输入光标移到textbox时,整个textbox都变成被选区。
注:在textbox控件对象中有两个属性,用途是用来设置选取区。
 Selstart         设置选取区的起始位置
 sellength       用来设置选区的长度
 private  sub  text1_gotfocus()
          text1.selstart=0
      text1.sellength=len(text1.text)
 end sub
 例:(第三章练习六)当输入光标移到textbox时,希望将其文字颜色设置为红色,以提醒用户注意,当输入光标离开textbox其文字还原原来的黑色。

当窗体大小改变时会发生resize事件
 例:让控件随着窗体一起调整大小。(在窗体上放置textbox及picturebox)
  private  sub   form_resize()
 text1.left=0
 text1.top=0
 text1.width=me.scalewidth/2
 text1.height=me.scaleheight
 picture1.left=me.scalewidth/2
 picture1.top=0
 picture1.height=me.scaleheight
 end sub

VB编程热门文章排行
网站赞助商
购买此位置

 

关于我们 | 网站地图 | 文档一览 | 友情链接| 联系我们

Copyright © 2003-2024 电脑爱好者 版权所有 备案号:鲁ICP备09059398号