1、v窗体的结构与窗体的结构与WindowsWindows下的窗口十分类似,在程序运下的窗口十分类似,在程序运行前,即设计阶段,称为窗体;程序运行后也可以行前,即设计阶段,称为窗体;程序运行后也可以称为窗口。称为窗口。3.1 窗体的结构窗体的结构系统菜单系统菜单窗体窗体最小化按钮最小化按钮最大化按钮最大化按钮关闭按钮关闭按钮标题栏标题栏 窗体名窗体名.Caption=.Caption=字符串字符串v窗体的属性窗体的属性 NameName:设置窗体的名称。:设置窗体的名称。所有对象都具有该属性;所有对象都具有该属性;在同一范围内不允许该属性值相同;在同一范围内不允许该属性值相同;该属性只能通过属性窗
2、口设置,在代码窗口中不能该属性只能通过属性窗口设置,在代码窗口中不能改变改变。CaptionCaption:设置窗体标题栏上显示的内容。:设置窗体标题栏上显示的内容。在代码窗口修改该属性值的语法格式为:在代码窗口修改该属性值的语法格式为:注意注意CaptionCaption属性与属性与NameName属性的区别!属性的区别!3.2 窗体的三要素窗体的三要素NameCaptionCommand1.Caption=确定确定对象名对象名.属性名属性名=属性值属性值Sub 对象名对象名_事件名事件名()对象名对象名.方法方法(参数参数)窗体名窗体名.AutoRedraw=True|False.Auto
3、Redraw=True|Falsev窗体的属性窗体的属性 AutoRedrawAutoRedraw:设置窗体被遮盖后是否要自动重绘窗体上的内容。语法格式为:BackColorBackColor、ForeColorForeColor:返回或设置窗体的背景颜色和前景颜色。属性值是一个16进制的常数;通常在编写代码时,常用Qbcolor或RGB函数为其设置颜色。3.2 窗体的三要素窗体的三要素Form1.BackColor=Form1.BackColor=&H&HFF0000FF0000 低字节到高字节依次表示红、绿和蓝的值低字节到高字节依次表示红、绿和蓝的值Form1.BackColor=RGB(
4、255,0,0)Form1.BackColor=RGB(255,0,0)Form1.ForeColor=vbRedForm1.ForeColor=vbRedRGB颜色函数讲解颜色函数讲解 蓝蓝红红绿绿256等份等份256等份等份256等份等份Form1.BackColor=RGB(255,13,222)v窗体的属性窗体的属性 BorderStyle BorderStyle:设置窗体的边框样式。语法格式:3.2 窗体的三要素窗体的三要素窗体名窗体名.BorderStyle=0|1|2|3|4|5.BorderStyle=0|1|2|3|4|5属性值说 明0-None窗体无边框1-Fixed Si
5、ngle含控制菜单、标题栏、最大、最小化按钮的固定单边框2-Sizable默认值,可调整的双线边框。3-Fixed Double含控制菜单、标题栏,无最大、最小化按钮、窗体大小固定的双线边框。4-Fixed Tool Window只有关闭按钮、缩小的字体显示标题栏、窗体大小固定的工具窗口。5-Sizable Tool Window只有关闭按钮,并用缩小的字体显示标题栏、窗体大小可变的工具窗口。注意:注意:该属性只能在属性窗口中设置该属性只能在属性窗口中设置v窗体的属性窗体的属性 Enabled Enabled:设置窗体是否被响应。语法格式:当该属性值为True(默认值)时表示窗体有效,能响应用
6、户或系统事件;为False时表示窗体无效,不能响应,并且窗体上的所以控件都无效。3.2 窗体的三要素窗体的三要素 窗体名窗体名.Enabled=True|False Enabled=True|Falsev窗体的属性窗体的属性 FontFont系列字体属性系列字体属性:设置窗体上文本的字体、字号、字形等样式。3.2 窗体的三要素窗体的三要素 属 性类 型 功 能FontName字符型决定对象上正文的字体(缺省为宋体)FontSize整型决定对象上正文的字体大小FontBold逻辑型决定对象上正文是否是粗体FontItalic逻辑型决定对象上正文是否是斜体FontUnderline逻辑型决定对象上
7、正文是否带下划线FontStrikeThru 逻辑型决定对象上正文是否加一删除线v窗体的属性窗体的属性 HeightHeight、WidthWidth:分别决定窗体大小的高度和宽度。TopTop、LeftLeft:表示窗体到屏幕上边框和左边框的距离。3.2 窗体的三要素窗体的三要素TopHeightLeftWidth原点原点(0,0)xyv窗体的属性窗体的属性 ControlBoxControlBox:取值为True或False,表示窗体左上角是否有控制菜单。IconIcon:返回或设置窗体左上角显示的图标或最小化时显示的图标,通常为.ICO格式的图标文件,仅当ControlBox属性值取Tr
8、ue 该属性才生效。MinButtonMinButton、MaxButtonMaxButton:设置窗体最小、最大化按钮是否有效。语法格式:3.2 窗体的三要素窗体的三要素窗体名.MinButton=True|False窗体名.MaxButton=True|Falsev窗体的属性窗体的属性 PicturePicture:设置窗体的背景图片。语法格式:VisibleVisible:设置窗体在执行时是否可见。语法格式:3.2 窗体的三要素窗体的三要素 窗体名窗体名.Picture=LoadPicture(Picture=LoadPicture(图片文件名图片文件名)窗体名窗体名.Visible=T
9、rue|False Visible=True|Falsev窗体的事件窗体的事件 不同的对象对应不同事件的发生,不同的对象对应不同事件的发生,VBVB中窗体有很多中窗体有很多事件。在一个窗体的代码窗口中列出了所有窗体事件。事件。在一个窗体的代码窗口中列出了所有窗体事件。3.2 窗体的三要素窗体的三要素在此选中对象在此选中对象列出选中对象事件列出选中对象事件v窗体的事件窗体的事件:当窗体变为激活的当前窗口时,引发本事件。ClickClick:当用户单击窗体时触发本事件。DblClickDblClick:当用户双击窗体时触发本事件。DeactivateDeactivate:当窗体失去激活状态,即另一
10、个窗体成为当前窗口时,引发本事件。LoadLoad:当窗体被加载到内存时触发本事件。Load事件往往用于在启动程序时对属性和变量进行初始化。UnloadUnload:当关闭窗体时,触发卸载事件,将窗体从内存中卸载。注意:注意:Load事件发生时窗体是不活动的,而事件发生时窗体是不活动的,而Activate事件发事件发生时窗体是活动的,生时窗体是活动的,Print方法不能在不活动窗体上使用,方法不能在不活动窗体上使用,因此因此Print不能用于不能用于Load事件中。事件中。3.2 窗体的三要素窗体的三要素 “双击双击”实际上触发两个事件,第一次按鼠实际上触发两个事件,第一次按鼠标按钮时产生标按
11、钮时产生ClickClick单击事件,第二次按鼠标单击事件,第二次按鼠标按钮时产生按钮时产生DblClickDblClick事件事件。Private Sub Form_Click()Private Sub Form_Click()Form1.BackColor=vbRedForm1.BackColor=vbRedEnd SubEnd SubPrivate Sub Form_Click()Private Sub Form_Click()Form1.BackColor=vbRedForm1.BackColor=vbRedEnd SubEnd Sub 当触发了当触发了Form对象的对象的Click事
12、件时,该事件时,该事件过程事件过程Form_Click就会被执行。就会被执行。?窗体名称为窗体名称为Form1,为何在其事件过程中,为何在其事件过程中用用Form,详见课本,详见课本18面。面。当用户双击窗体时,当用户双击窗体时,窗体不断变小,则窗体不断变小,则应应该添加什么事件过程该添加什么事件过程?例3.1v Print在Load和Activate事件中的区别。Private Sub Form_Load()Print*End SubPrivate Sub Form_Activate()Print*End Sub窗体事件示例&例:程序运行时,用户在窗体上输入字符时,窗体上显示输入结果。分析:
13、添加什么事件过程 在窗体上显示输入结果用什么代码 当用户输入a时触发了Form_KeyPress事件过程,该过程的参数KeyAscii值是多少?通过什么方法在窗体上显示出a?代码:Form_KeyPress97Private Sub Form_KeyPress(KeyAscii As Integer)Print Chr(KeyAscii)End SubForm1.printchr(x)函数:将函数:将ASCII码转换为对应的字符码转换为对应的字符;v窗体的方法 在代码窗口中,输入“form1.”后,会显示该窗体对象的所有属性和方法。3.2 窗体的三要素对象的属性和方法对象的属性和方法属性属性方
14、法方法v窗体的方法 Show和Hide:分别用于显示和隐藏窗体。调用格式:窗体名.Show Style 窗体名.Hide 窗体名缺省,表示显示或隐藏当前窗体;Show方法的Style参数取值:vbModel(模式):不允许用户同时与其他窗体交互。vbModeless(无模式):允许用户同时与其他窗体交互。3.2 窗体的三要素v窗体的方法 Print:用于将文本输出到窗体的一行上。调用格式:对象名.Print 输出项列表;|,对象除了窗体外,还可以是图片框(PictureBox)、Debug或打印机(Printer),若缺省对象名,表示将文本输出到当前窗体上。输出项列表:是由0个、1个或多个待输
15、出的数值表达式或字符串表达式构成;当输出项是由多个项构成,则中间必须用逗号或分号分隔;若Print后什么都不跟,则表示输出一个空行。3.2 窗体的三要素如下代码:如下代码:Private Sub Form_Click()Print 1,-2 Print Print We,studyEnd Sub标准格式标准格式v窗体的方法 Print:用于将文本输出到窗体的一行上。调用格式:对象名.Print 输出项列表;|,对象除了窗体外,还可以是图片框(PictureBox)、Debug或打印机(Printer),若缺省对象名,表示将文本输出到当前窗体上。输出项列表:是由0个、1个或多个待输出的数值表达式
16、或字符串表达式构成;当输出项是由多个项构成,则中间必须用逗号或分号分隔;若Print后什么都不跟,则表示输出一个空行。3.2 窗体的三要素如下代码:如下代码:Private Sub Form_Click()Print 1;-2 Print Print We;studyEnd Sub紧缩格式紧缩格式注意:标准格式即参数以“,”分割,下一个输出项将与上一个输出项间隔14列;紧缩格式即参数以“;”分割,下一个输出项将以紧凑格式,紧跟着上一个输出项输出。Print方法输出的位置是由窗体的绘图坐标CurrentX和CurrentY属性决定的,默认为对象的左上角(0,0)。该方法可以结合定位输出函数一起使
17、用:Spc(n):在下一个输出项前插入n个空格;Tab(n):输出定位在绝对n列号上。代码:1197513111591317Private Sub Form_Click()End Sub Print Tab(11);A Print Tab(9);B;Spc(3);B Print Tab(7);C;Spc(3);C;Spc(3);C Print Tab(5);D;Spc(3);D;Spc(3);D;Spc(3);D108643333333.2 窗体的三要素v窗体的方法 Cls方法:用于清除运行时窗体上或图形上的用Print方法生成的文本和图形。语法格式:对象名.Cls 对象名可以是窗体或图片框。
18、当对象名缺省时,表示清除当前窗体上的内容。例如:Form1.ClsCls Picture1.Cls3.2 窗体的三要素v窗体的方法 Move(移动)方法:用于移动对象,并且可以在移动时变化对象的大小。语法格式:对象名.Move Left,Top,Width,Height其中,对象名可以是窗体和除时钟、菜单以外的所有控件。窗体名缺省(即未选对象名)时,默认为当前窗体。Move方法中的Left、Top、Width、Height4个参数,单位为twip(像素)。!&P32 3.2 窗体的三要素&例:编写一个程序,实现功能:每单击窗体一次,窗体向右移动。思路:窗体向右移动是一个动作,应该执行什么方法;
19、该动作是被什么对象的什么事件触发的?代码:Private Sub Form_Click()Form1.Move Left+1500 End Submove窗体窗体clickForm1.Move Left+1500,top,Width+1500?每次移动并变大如何实现每次移动并变大如何实现例3.3 窗体的简单应用v编程实现:单击和双击窗体时分别改变标签和窗体标题栏的文字,单击单选按钮改变标签文字。v界面设计对象属性属性值FormNameForm1Caption学习之道LabelNameLabel1Caption空白BackColor&H00FFC0C0&OptionButtonNameOptio
20、n1Caption上课OptionButtonNameOption2Caption复习属性设置属性设置v编写代码Private Sub Form_Click()窗体的单击事件过程 Label1.Caption=成功通过考试!End SubPrivate Sub Form_DblClick()窗体的双击事件过程 Form1.Caption=欢迎你学习VB!End SubPrivate Sub Option1_Click()单选按钮的单击事件过程 Label1.Caption=听明白 勤思考 记下来!End SubPrivate Sub Option2_Click()单选按钮的单击事件过程 Lab
21、el1.Caption=多上机 善提问 多总结!End Sub3.3 多窗体v多窗体是在应用程序中有多个并列的普通窗体。v多窗体的建立步骤:(1)建立第一个窗体,选择“新建”选项卡创建一个新窗体,若选择“现存”选项卡则添加一个属于其他工程的窗体。(2)通过选择“工程”“添加窗体”或工具栏上的添加窗体按钮来创建另一个新窗体。3.3 多窗体v多窗体的运行顺序设置:v选择“工程”菜单中的最后一项“工程1属性”命令,在弹出的对话框中改变启动对象 例3.4v设计一个多窗体,实现两个界面的交换。为程序添加窗体Form2,Form1窗体加载一个图片,Form2窗体加载时为空白。v单文档界面SDI(Singl
22、e Documents Interface)任何时刻都只能打开一个文档,若要打开别的文档,则必须先关闭原来的文档。v多文档界面MDI(Multiple Documents Interface),可同时打开多个文档,每个文档占用一个窗口,用户可以在已经打开的窗口之间切换,简化了文档之间的信息转换。3.3 MDI窗体 多文档界面通常可以分为一个应用程序(父窗体)中包含多个文档(子窗体)。v创建MDI窗体 新建一个工程。此时工程中包含一个窗体Form1。创建MDI窗体。选择“工程”-“添加MDI窗体-“打开”,即创建MDI父窗体MDIForm1。建立MDI子窗体。双击工程资源管理器窗口中的Form1
23、,在属性窗口中找到MDIChild属性,把它的值设置为True,创建MDI子窗体。改变启动对象。在“工程”-“工程属性”中改变启动对象,把MDIForm1窗体设置为启动窗体。3.3 MDI窗体MDI窗体特性:父窗体只能有且必须有一个;子窗体至少有一个;所有的子窗体无论如何操作都不能移出MDI窗体;当最大化一个子窗体时,它的标题和父窗体的标题组合在一起,显示在父窗体的标题栏上;当父窗体最小化时,所有子窗体也被最小化,只有父窗体的图标会出现在任务栏中,父窗体从最小化回复时,子窗体也恢复原来的状态。例3.5 MDI窗体的应用v设计界面属性设置属性设置对象属性属性值MDIFormNameMDIForm1Caption父窗体FormNameForm1Caption子窗体1MDIChildTrueFormNameForm2Caption子窗体2MDIChildTrueFormNameForm3Caption子窗体3例3.5 MDI窗体的应用v代码编写 MDIform窗体加载事件:Private Sub MDIForm_Load()Form1.Show Form2.Show Form3.ShowEnd Sub