OOP方法中对象对事件的反应
来源:优易学  2010-1-15 19:42:18   【优易学:中国教育考试门户网】   资料下载   IT书店

  当作用在对象上的一个事件发生时,若没有与之相关联的代码,则不会发生任何操作。对 于绝大多数事件,开发者都不必编写代码,实际上只需对少数几个系统中要用到的事件设计响应程序即可。  

  事件的响应程序段一般是一个过程,用事件的名称来命名。  
  一段事件响应代码应置于何处,是由事件发生的顺序决定的。  
  表单中所有对象的Init事件将在表单的Init事件之前执行,所以在表单显示以前,就可在表单的Init事件代码中处理表单上的任意一个对象。  
  若要在列表框、组合框或复选框的值改变时执行某代码,可将它编写在InteiactiveChange事件(不是Click事件)中,因为一般而言,对象的值的改变并不触发对象的Click事件,有时对象的值没改变,而C1ick事件却会发生。
  当拖动一对象时,系统将忽略其他鼠标事件。例如,在拖放操作中:MotlseUp和Mot,se—Move事件不会发生。
  Valid和when事件有返回值,默认为“真”(.T.)。若从when事件返回“假”(.F.)或O,对象将不能被激活。若从Valid事件返回“假”(.F.)或O,不能将焦点从对象上移走。

  方法程序的层次
  (1)容器事件和对象事件
  为对象编写事件代码时,应注意以下两条基本规则:
  ①容器不处理与所包含的对象相关联的事件。
  ②若没有与某对象相关联的事件代码,则Visual FoxPro在该对象所在类的层次结构中逐层向上检查是否有与此事件相关联的代码。
  当用户以任意一种方式(使用Tab键、单击鼠标、将鼠标指针移至对象上等)与对象交互作用时,对象事件被触发。每个对象只接收自己的事件。例如,尽管命令按钮位于表单上,当用户单击命令按钮时,不会触发表单的Click事件,只触发命令按钮的Click事件。
  容器事件代码与其所包含的对象事件代码相互独立。
  若没有与命令按钮相关联的Click事件代码,尽管有与表单相关联的Click事件代码,当用户单击按钮时,也不会执行与表单相关联的Click事件代码。
  这条规则也适用于表格控件。表格包含列,列又包含标头和文本框。当事件发生时,只有与事件相关联的最底层对象识别该事件,高层的容器不识别这个事件。

责任编辑:cyth

文章搜索:
 相关文章
热点资讯
资讯快报
热门课程培训