(1)创建对象变量 创建以文档为中心的应用程序,为了在运行时建立若干个子窗体存取不同的 文档,一般先创建一个子窗体作为这个应用程序文档的模板,然后通过调用 对象变量来创建其他子窗体。创建对象变量用下面的语句 ■格式:Dim〈变量名〉 As New〈对象类型〉 功能:声明对象变量 例如:如果己建立了一个Name为“ frmChild”的子窗体,则: Dim NewDoc As New frmChild 就会为“ frmChild建立一个新实例,新实例具有与“ frmChi ld”窗体相同的属性 控件、代码。 ■说明:New关键字后应是“类名”。实际上,在工程中添加的窗体有着特殊性,它 既是窗体类,也是窗体对象,与在窗体上建立的控件具有不同的性质 例如 Dim NewDoc As New Forml 声明并创建一个 NewDoc窗体 变量 NewDoc Show 新窗体显示在屏幕上 aual basic语言程序设计
Visual Basic 语 言 程 序 设 计 (1)创建对象变量 ◼ 创建以文档为中心的应用程序,为了在运行时建立若干个子窗体存取不同的 文档,一般先创建一个子窗体作为这个应用程序文档的模板,然后通过调用 对象变量来创建其他子窗体。创建对象变量用下面的语句。 ◼ 格式: Dim 〈变量名〉 As New〈对象类型〉 ◼ 功能:声明对象变量。 ◼ 例如:如果已建立了一个Name为“frmChild”的子窗体,则: ◼ Dim NewDoc As New frmChild ◼ 就会为“frmChild”建立一个新实例,新实例具有与“frmChild”窗体相同的属性、 控件、代码。 ◼ 说明:New关键字后应是“类名”。实际上,在工程中添加的窗体有着特殊性,它 既是窗体类,也是窗体对象,与在窗体上建立的控件具有不同的性质。 ◼ 例如: ◼ Dim NewDoc As New Form1 '声明并创建一个NewDoc窗体 变量 ◼ NewDoc.Show '新窗体显示在屏幕上
(2)创建MDI子窗体的代码 窗体程序运行时建立一个子窗体的程序代码如下: Dim No As Integer Public Sub FileNewProcOT Dim NewDoc as New frmChi ld NO=No+1 NewDoc. Caption="编辑区 NewDoc Show 显示子窗体 End sub 如果多次调用 FileNewProc过程,则可以产生多个 “ frmChild”的子窗体,图12.1就是此程序运行的效果。 aual basic语言程序设计
Visual Basic 语 言 程 序 设 计 (2)创建MDI子窗体的代码 ◼ 窗体程序运行时建立一个子窗体的程序代码如下: ◼ Dim No As Integer ◼ Public Sub FileNewProc() ◼ Dim NewDoc As New frmChild ◼ No=No+1 ◼ NewDoc.Caption="编辑区" ◼ NewDoc.Show '显示子窗体 ◼ End Sub ◼ 如果多次调用FileNewProc过程,则可以产生多个 “frmChild”的子窗体,图12.1就是此程序运行的效果
2.设计MI子窗体 MDI子窗体的设计与MDI窗体无关,但在运 行时总是包含在MD窗体中。在该子窗体上 般有存放文档的控件,也可有子窗体菜 单 【例12.1】设计一个简易的书写器。 aual basic语言程序设计
Visual Basic 语 言 程 序 设 计 2.设计MDI子窗体 ◼ MDI子窗体的设计与MDI窗体无关,但在运 行时总是包含在MDI窗体中。在该子窗体上 一般有存放文档的控件,也可有子窗体菜 单。 ◼ 【例12.1】设计一个简易的书写器
2. Screen对象和 Screen. Activecontrol属性 窗体及 指件的信必5徒对多,对象能是供些 窗体或控件的详细特性。 Screen对象有许多属性,如 Activeform、 ActiveContro 如果屏幕上有多个窗体,通过Sre对象的 Act Contro属性, 够引用当前屏幕上激活窗体的各个属性,无需知 窗体对象的 体名称。 Screen. ActiveControl在MI窗体应用程序中非常有用 ■例如,把选定的文本复制到剪贴板上的过程如下: Private Sub CopyProco ClipBoard SetText Screen ActiveControl SelText End sub 此程序段与上述程序段的功能是一样的 ■即 Screen. ActiveControl与 frmMDI. Activeform. ActiveControl是等同的 aual basic语言程序设计
Visual Basic 语 言 程 序 设 计 2.Screen对象和 Screen.ActiveControl属性 ◼ 在多窗体操作中,每个窗体中往往有多个控件,要想获得屏幕上当前 窗体及当前控件的信息,必须使用Screen对象,Screen对象能提供当 前窗体或控件的详细特性。Screen对象有许多属性,如ActiveForm、 ActiveControl等。 ◼ 如果屏幕上有多个窗体,通过Screen对象的ActiveControl属性,能 够引用当前屏幕上激活窗体的各个属性,无需知道当前窗体对象的具 体名称。 Screen.ActiveControl在MDI窗体应用程序中非常有用。 ◼ 例如,把选定的文本复制到剪贴板上的过程如下: ◼ Private Sub CopyProc() ◼ ClipBoard.SetText Screen.ActiveControl.SelText ◼ End Sub ◼ 此程序段与上述程序段的功能是一样的。 ◼ 即Screen.ActiveControl与frmMDI.ActiveForm.ActiveControl是等同的
3.显示MD窗体及其子窗体 ■显示MDI窗体及其子窗体的方法是Show,加载子窗体时, 其父窗体(MDI窗体)会自动加载并显示。而加载父窗体MDI 时,其子窗体并不会自动加载 ■MDI窗体有 AutoShowChildren属性,决定是否自动显示子 窗体。如果它被设置为Tre,则当改变子窗体的属性(如 Caption等)后,会自动显示该子窗体,不再需要Show方法 如果设置 AutoShowChi ldren为 false,则改变子窗体的属 性后,不会自动显示该子窗体,子窗体处于隐藏状态,直 到用Show方法才能把它们显示出来。MDI子窗体没有 AutoShowChildren属性。 aual basic语言程序设计
Visual Basic 语 言 程 序 设 计 3.显示MDI窗体及其子窗体 ◼ 显示MDI窗体及其子窗体的方法是Show,加载子窗体时, 其父窗体(MDI窗体)会自动加载并显示。而加载父窗体MDI 时,其子窗体并不会自动加载。 ◼ MDI窗体有AutoShowChildren属性,决定是否自动显示子 窗体。如果它被设置为True,则当改变子窗体的属性(如 Caption等)后,会自动显示该子窗体,不再需要Show方法; 如果设置AutoShowChildren为False,则改变子窗体的属 性后,不会自动显示该子窗体,子窗体处于隐藏状态,直 到用Show方法才能把它们显示出来。MDI子窗体没有 AutoShowChildren属性