VB中常用事件

  • 格式:pdf
  • 大小:382.60 KB
  • 文档页数:16

Activate、Deactivate 事件

Activate -当一个对象成为活动窗口时发生。

Deactivate -当一个对象不再是活动窗口时发生。

语法

Private Sub object_Activate( )

Private Sub object_Deactivate( )

object 所在处代表一个对象表达式,其值是“应用于”列表中的一个对象。

说明

一个对象可以通过诸如单击它,或使用代码中的 Show 或 SetFocus 方法之类的用户操作而变成活动的。

事件仅当一个对象可见时才发生。例如,除非使用 Show 方法或将窗体的 Visible 属性设置为 True,否则,一个用 Lo

加载的窗体是不可见的。

和 Deactivate 事件仅当焦点在一个应用程序内移动时才发生。在另一个应用程序中将焦点移向或移离一个对象时,不会触发任

件。当一个对象卸载时,不会发生 Deactivate 事件。

Activate 事件在 GotFocus 事件之前发生,LostFocus 事件在 Deactivate 事件之前发生。

子窗体来说,这些事件仅当焦点从一个子窗体改变到另一个子窗体时才会发生。例如,在一个带有两个子窗体的 MDIForm 对

窗体之间移动时,它们能接收这些事件。然而,当焦点在一个 MDI 子窗体和一个非 MDI 子窗体之间移动时,父 MDIFo

收 Activate 和 Deactivate 事件。

由 Visual Basic 建立的 .exe 文件显示一个对话框,此对话框也是由建立在 Visual Basic 中的一个 .dll 文件所创xe 文件的窗体将获得 Deactivate 和 LostFocus 事件。这可能是不期望的,因为下列情况下不应获得 Deactivate 事件:

如果对象是一个过程之外的部件。

如果对象不是用 Visual Basic 编写的。

在开发环境中调用一个 Visual Basic 建立中的 DLL 时。

---------------------------------------- Change 事件 (ActiveX 控件)

指示一个控件的内容已经改变的。此事件如何和何时发生则随控件的不同而不同:

x - 改变控件的文本框部分的正文。该事件仅在 Style 属性设置为 0(下拉 Combo)或 1(简单 Combo)和正文被

通过代码改变了 Text 属性的设置时才会发生。

DirListBox - 改变所选择的目录。该事件在双击一个新的目录或通过代码改变 Path 属性的设置时发生。

DriveListBox - 改变所选择的驱动器。该事件当选择一个新的驱动器或通过代码改变 Drive 属性的设置时发生。

r 和 VScrollBar(水平和垂直滚动条) - 移动滚动条的滚动框部分。该事件在进行滚动或通过代码改变 Value 属性的设

Label - 改变 Label 的内容。该事件在一个 DDE 链接更新数据或通过代码改变 Caption 属性的设置时发生。

tureBox - 改变 PictureBox 的内容。该事件当一个 DDE 链接更新数据或通过代码改变 Picture 属性的设置时发生

Box - 改变文本框的内容。该事件当一个 DDE 链接更新数据、用户改变正文或通过代码改变 Text 属性的设置时发生

语法

Private Sub object_Change([index As Integer])

Change 事件语法包括下列部分:

部分 描述 object 一个对象表达式,其值是“应用于”列表中的一个对象。 index 一个整数,用来唯一地标识一个在控件数组中控件。

说明

事件过程可协调在各控件间显示的数据或使它们同步。例如,可用一个滚动条的 Change 事件过程更新一个 TextBox 控件中 Value 属性的设置。或者可以利用 Change 事件过程在一个工作区里显示数据和公式,在另一个区域里显示结果。

事件过程在更新系统控件(DirListBox,DriveListBox 和 FileListBox)中的各属性时也是有用的。例如,可更新一个 DirListB

的 Path 属性设置来反映一个 DriveListBox 控件的 Drive 属性设置的改变。

个 Change 事件过程有时会导致一个层叠事件。这种情况在控件的 Change 事件过程改变该控件的内容时会发生,例如,通

设置一个决定该控件的值的属性,如对一个 TextBox 控件的 Text 属性之类的设置。为了避免层叠事件:

,应避免为控件编写能改变该控件内容的 Change 事件过程。如果编写了那样的过程,应确保设置一个标志用来防止在当前变化

进一步的变化。

创建两个或两个以上其 Change 事件过程互相影响的控件。例如,两个 TextBox 控件在它们的 Change 事件期间互相更

避免对 HScrollBar 和 VScrollBar 控件在 Change 事件中使用 MsgBox 函数或语句。

-------------------------------------

Load 事件

此事件是在一个窗体被装载时发生。当使用 Load 语句启动应用程序,或引用未装载的窗体属性或控件时,此事件发生。

语法

Private Sub Form_Load( )

Private Sub MDIForm_Load( )

说明

ad 事件过程用来包含一个窗体的启动代码—例如,指定控件缺省设置值,指明将要装入 ComboBox 或 ListBox 控件的内

初始窗体级变量等。 Load 事件是在 Intialize 事件之后发生。

中引用一个未装载窗体的属性时,该窗体自动被装载但不自动成为可视窗体,除非 MDIChild 属性被设置为 True。如果一个

未被装载而一个 MDI 子窗体却被装载,则 MDIForm 和该子窗体都自动被装载并且都将成为可视的窗体。除非使用 Show

将 Visible 属性设置为 True,否则其它窗体都不能显示出来。

Form Load 事件中的下列代码可自动装载一个 MDI 子窗体(假设 Form1 本身的 MDIChild 属性被设置为 True)

Dim NewForm As New Form1 NewForm.Caption = "New Form " '.„按引用装载窗体‟。

由于所有子窗体在装载时都可视,对 Caption 属性的引用将装载该窗体并使其可视。

当为诸如 Activate,GotFocus,Paint 和 Resize 等相关事件创建过程时,要确保它们的操作不冲突,而且它们也不会导致循环的

------------------------------------

GotFocus 事件

得焦点时产生该事件;获得焦点可以通过诸如 TAB 切换,或单击对象之类的用户动作,或在代码中用 SetFocus 方法改变焦

语法

Private Sub Form_GotFocus( )

Private Sub object_GotFocus([index As Integer])

GotFocus 事件包含下列部分:

部分 描述 object 一个对象表达式,其值是“应用于”列表中的一个对象。

index 一个整数,用来唯一地标识一个在控件数组中的控件。

说明

tFocus 事件过程用以指定当控件或窗体首次接收焦点时发生的操作。例如,通过给窗体上每个控件附加一个 GotFocus 事件过要说明或状态条信息给外界提供指导。根据获取焦点控件的不同,通过使其有效、禁止或者是显示其它控件的方式,也可以提供出可

个控件仅当其 Enabled 和 Visible 属性都设置为 True 时才能接收焦点。为了移动焦点,在 Visual Basic 中要自定

口,对于窗体上的控件需设置 Tab 键顺序或指定访问键。

------------------------------------

LostFocus 事件

在一个对象失去焦点时发生,焦点的丢失或者是由于制表键移动或单击另一个对象操作的结果,或者是代码中使用 SetFocus 方

点的结果。

语法

Private Sub Form_LostFocus( )

Private Sub object_LostFocus([index As Integer])

LostFocus 事件包括下列部分:

部分 描述 object 一个对象表达式,其值是“应用于”列表中的一个对象。

index 一个整数,它用来唯一地标识一个在控件数组中的控件。

说明

事件过程主要是用来对更新进行验证和确认。使用 LostFocus 可以在焦点移离控件时引进确认。这类事件过程的另一种用途

事件过程中的应用类似,可以隐藏、显示其它对象或者使它们有效或无效。也可使设置在该对象的 GotFocus 事件过程中的条件

其进行更改。

Visual Basic 所建立的 .exe 文件要显示一个由也是用 Visual Basic 所建立的 .dll 文件所创建的对话框,则该 .e

的窗体将得到 Deactivate 和 LostFocus 事件。这可能是不希望的,因为对话框将不能获得 Deactivate 事件:

如果该对象是进程外的部件。

如果该对象不是用 Visual Basic 编写成。