第8章:表单控件.ppt

上传人:啊飒飒 文档编号:11877084 上传时间:2021-10-09 格式:PPT 页数:107 大小:1.51MB
返回 下载 相关 举报
第8章:表单控件.ppt_第1页
第1页 / 共107页
第8章:表单控件.ppt_第2页
第2页 / 共107页
第8章:表单控件.ppt_第3页
第3页 / 共107页
第8章:表单控件.ppt_第4页
第4页 / 共107页
第8章:表单控件.ppt_第5页
第5页 / 共107页
点击查看更多>>
资源描述

《第8章:表单控件.ppt》由会员分享,可在线阅读,更多相关《第8章:表单控件.ppt(107页珍藏版)》请在三一文库上搜索。

1、Visual FoxPro 6.0 程序设计与应用教程,漳州师范学院 计算中心 2003.9,第八章,表单控件,3,表单控件的常用属性、方法、 事件和主要功能,本章学习要点,4,简 介,VFP有21个基类控件,可分为5大类: 输出类:标签、图像、线条、形状 输入类:文本框、编辑框、微调控件、列表框、 组合框 控制类:命令按钮、命令按钮组、复选框、 选项按钮组、计时器 多重容器类:表格、页框、Container容器 连接类:ActiveX控件、ActiveX绑定控件、超级链接控件 以上分类仅是按控件的主要功能,其实每个控件都有很多特性,例如:一般的控件都可起到控制的作用,因为都含有Click事件

2、。,5,常用控件的公共属性 name:控件的名称,它是代码中访问控件的标识(表单或表单集除外)。 Fontname:字体名。 Fontbold:字体样式为粗体。 Fontsize:字体大小。 Fontitalic:字体样式为斜体。 Forecolor:前景色。 Height:控件的高度 Width:控件的宽度。控件的高度和控件的宽度,也可在设计时通过鼠标拖曳进行可视化调整。 Visible:控件是否显示。 Enable:控件运行时是否有效。如果为 .T.,则表示控件有效,否则运行时控件不可使用。,6,8.1输出类控件,8.1.1 标签(label) 在表单中,标签对象常被用来显示一些说明信息、

3、对象标题等信息 标签的创建 (1)利用表单控件工具栏 (2)从数据环境的表中拖一字段至表单上 表单上创建的第1个标签名:Label1 属性选介 Caption:用于指定标签对象的标题,是字符型数据 Autosize:为.T.时,标签对象将根据其内容自动地改变大小,缺省为.F.,7,WordWrap:为.T.时,标签的内容可实现自动换行(Auto size应为.T.) BackStyle:为0时,使标签对象透明,缺省为1,不透明 BorderStyle:指定标签对象的边框风格,为0无边框,为1时,单线框 两种设置属性的方法: 1.在属性窗口中设置 2.用事件代码设定 说明:字符型属性在属性窗口中

4、设置时,不用界限符号,而用代码时则要。 如:THISFORM.label1.Caption=“学生学号”,8,8.1.2 图像、线条、形状,图像 图像控件可支持的图像文件类型有:BMP、JPG、ICO、GIF等 表单及表单中对象的图像创建方法: 利用表单控件工具栏 表单中创建的第1个图像名:Image1,属性选介 Picture:在属性窗口中为表单或对象指定一个图像文件 Stretch:图像如何调整大小适应Image控件,9,2. 线条(Line) 画水平线(height=0)、垂直线(width=0)、斜线。 在表单中创建的第1 个线条对象名:Line1 属性选介 LineSlant:斜线方

5、向属性( 或 / ) 3. 形状(Shape) 画圆、椭圆、正方形、矩形、圆角矩形、圆角正方形 在表单中创建的第1个形状对象名:Shape1 Curvature:确定圆角大小。,10,例8.1 设计如图所示的应用程序封面 表单文件P8-1.scx,11,说明:表单设置在桌面上,无标题栏,封面文字放在水平中间,垂直1/3处。必须将标签的文字定位代码编写在表单的Activate事件中,若编写在表单的init事件中,因此时表单尚未最大化,而表单大小与位置要依表单大小确定的。 完成后再添加一个形状 属性参照P196表8-3设置,12,8.2 输入类控件,输入类控件有:文本框、编辑框、列表框、和组合框。

6、其中列表框和下拉列表框只能让用户选择数据,其余控件都可接受用户从键盘输入数据。,8.2.1 文本框(TextBox),文本框可供用户输入、编辑数据。 文本框可接受的数据类型有:C、N、D、L型。 创建文本框对象的方法有两种: (1) 利用表单工具栏的文本框按钮 (2) 从数据环境中拖一字段至表单中,13,1.属性选介 Value:指定文本框中对象的值,属性值可以是C、N、D或L型。 说明:文本框中只能输入一段的数据(只接受一次回车) ControlSource:文本框的控制数据源。 Format:指定Value值的约束格式。 Format属性是为整个文本框规定一个格式。P197表,14,Inp

7、utMask(输入掩码):约束文本框中指定位置字符的格式。 该属性规定文本框中指定位置字符的格式。,15,例:设置文本框的Value:字符型数据 (无)、InputMask:AAA 表示文本框中只接受字母字符、且最多为3位 例:设置文本框的Value:字符型数据 (无)、InputMask:9999-9999999 表示文本框中只接受数字字符型数据,16,ReadOnly:指定文本框是否允许编辑 .F.允许 (默认) .T.只读 Alignment:指定文本框中数据对齐方式, 0- 左对齐, 1-右对齐 , 2- 居中, 3- 自动(默认),此时对齐方式与Value的数据类型有关,N型右对齐,

8、其余左对齐 。 PasswordChar:指定文本框所键入字符的显示符号, 该属性不影响Value的值。,17,2. 方法选介 SetFocus:为文本框对象设置当前焦点 设置为焦点后操作所作的输入都是针对它的 如:Thisorm.text1.setfocus 3. 事件选介 (1)When:文本框获得焦点前发生 (2)GotFocus:文本框获得焦点时发生 (3)Valid:文本框失去焦点前发生 (4)LostFocus:文本框失去焦点时发生 (5)KeyPress:当在文本框中按动键时发生 (6) InteractivateChange:当用户用键盘 或鼠标改变文本框对象的值时发生。,18

9、,4. 文本框生成器 生成器可用来设置常用属性。但不能设置所有属性。(且不是所有控件都有生成器。) 例:文本框中的Value、ControlSource、InputMask、Enabled.可用生成器来设置。 文本生成器的打开 右键单击控件选择,19,文本生成器包括:格式、样式、值三个选项卡 1. 格式选项卡 (1)数据类型:表示文本框的数据类型 (2)仅字母表中的字符:表示文本框中只允许字母字符,(相当于Format中的格式码“A”),(3)显示前导零:显示数字中小数点左的前导0。(相当Format中的格式码“L”),20,(4)进入时选定:表示当非空的文本框获得焦点时,框中数据就被选定(相

10、当Format中的格式码“K”) (5)隐藏显示内容:表示当文本失去焦点时,框中所选定数据的选定状态就被取消,否则,所选定仍将保持选定状态( 相应于Hide Selection属性),(6)在运行时启用:表示文本框是否可用;(选中相当于Enable=.T.) (7)使其只读:表示是否禁止文本框中的数据(选中对应ReadOnly的.T.) (8)输入掩码:对应InputMask属性。,21,2. 样式选项卡 (1)特殊效果:“三维” 和“平面” (对应 SpecialEffect 属性 3D、Plain) (2)边框:“单线”和“无”(对应BorderStyle属性的单线框和无边框 (3)字符对

11、齐方式:对应Alignment属性,(4)调整文本框尺寸:调整文本框的大小,使其恰好容纳数据(应与InputMast配合),22,3.值选项卡 对应ControlSource属性,可利用该字段名组合框的列表指定表或视图中的某一项。,23,例8.2 某铁路上共有n(1)个车站,需要准备多少种车票?设任两个车站都有往返车票。 表单文件P8-2.scx,Command1的Click事件代码 IF THISFORM.TEXT1.VALUE=1 RETURN ENDIF S=0 FOR M=1 TO THISFORM.TEXT1.VALUE FOR N=2 TO THISFORM.TEXT1.VALUE

12、 S=S+1 ENDFOR ENDFOR THISFORM.TEXT2.VALUE=S THIS.ENABLED=.F. THISFORM.COMMAND2.ENABLED=.T.,Command2的Click事件代码THISFORM.TEXT1.VALUE=0 THISFORM.TEXT2.VALUE=0 THIS.ENABLED=.F. THISFORM.COMMAND1. ENABLED=.T.,24,例8.3 设计如图表单,任意设置圆形的大小和颜色。 表单文件P8-3.scx,命令按钮确定Click事件代码 thisform.shape1.height=val(thisform.tex

13、t1.value) thisform.shape1.width=thisform.shape1.height if val(thisform.text2.value)255 return endif if val(thisform.text3.value)255 return endif,if val(thisform.text4.value)255 return endif thisform.shape1.backcolor=rgb(val(thisform.text2.value), val(thisform.text3.value),val(thisform.text4.value) r

14、eturn,25,8.2.2 编辑框,利用编辑框控件可实现文本数据的输入与编辑,其中的文本可以是一段或多段。 (编辑框常用于绑定备注型字段) 1. 属性选介 Value:用于指定编辑框的值,并在框中显示。只能C型。可输入多段数据。 ScrollBar:为2时,当编辑框包含的数据超出编辑框时,出现垂直滚动条,为0时无滚动条 ControlSource:设置编辑框对象的数据源。一般为备注型字段,26,SelText:返回用户在编辑框中所选定的文本内容,该属性不在属性窗口中设置,在代码中设置. 例:Thisform.edit1.value=Thisform.edit2.seltext Thisfor

15、m.edit1.seltext=Thisform.edit2.seltext 将edit2中选中的内容复制到edit1中。 Selstart:指定用户在文本框或编辑框中选定内容的起始位置,第一个字符位置为0 Sellength:指定 返回用户在文本框或编辑框中选定内容的长度 例:选中表单编辑edit1从第4个字符开始的6个字符 THISFORM.Edit1.Setfocus 须先获得焦点 THISFORM.Edit1.Selstart=3 THISFORM.Edit1.Sellength=6,27,例8.4 设计表单,实现在一个编辑框中查找另一个编辑框选定项内容。 表单文件P8-4 .scx,

16、Command1的Click事件代码 if !empty(thisform.edit1.seltext) findstring=alltrim(thisform.edit1.seltext) loc=at(findstring,thisform.edit2.value) if loc=0 thisform.label3.caption=未找到字符串 else thisform.label3.caption=找到字符串 thisform.edit2.setfocus thisform.edit2.selstart=loc-1 thisform.edit2.sellength=len(findst

17、ring) endif else thisform.label3.caption=请在左边编辑框中选定要查找的字符串 endif,28,例8.5 设计如图表单,利用剪贴板实现文本框选定内 容复制到编辑框中,要求如下: 在文本框中选定内容后 ,“复制”命令按钮被激活 若“复制”命令按钮按下,实现文本框选定内容粘贴到编辑框位置。 表单文件P8-5 .scx,29,Command1(复制)的Click事件代码 _CLIPTEXT=THISFORM.Text1.SelText THIS.Enabled=.F. THISFORM.Command2.Enabled=.T. Command2(粘贴)的Cli

18、ck事件代码 THISFORM.Edit1.SelText=_CLIPTEXT THISFORM.Edit1.SetFocus Text1(文本框)的MouseUp事件代码 LPARAMETERS nButton, nShift, nXCoord, nYCoord *判断Text1中是否有选定内容,有则Command1 IF LEN(THIS.SelText)0 THISFORM.Command1.Enabled=.T. ENDIF Form1的Init事件代码 THISFORM.Text1.SetFocus _CLIPTEXT=&清空剪贴板,_CLIPTEXT是一系统内存变量,用于提供剪贴板

19、内容。,将选定内容复制到剪贴板,30,8.2.3 列表框与组合框,列表框与组合框都有一个可选择单项或多项选项的列表,列表框全部显示,组合框只显示一项,只在单击右端向下按钮才显示列表,组合框分为下拉组合框(可输入)和下拉列表框 1.属性选介 ColumnCount: 指定列表框或组合框的列数 Style:组合框属性,如下表:,31,RowSourceType:指定列表框或组合框数据类型。共有9类,如下表:,32,33,RowSource:指定列表框数据源。必须与RowSourceType 匹配 Listcount:返回组合框或列表框中列表项的个数(行数) 例:Thisform.Combo1.Li

20、stcount 可返回组合框中行数 Value:返回组合框或列表框中选定行的内容。对于多列式列表框,选定项中的哪一列作为Value属性值,决定于BoundColumn属性。 Tbo1.boundcolumn=5 Thisform.print(Tbo1.Value),34,DisplayValue:返回组合框中显示的文本内容 如:thisform.print(bo1.displayvalue) MultiSelected:指定用户是否在列表框中进行多重选择。( .T.允许、.F.不允许,用Ctrl、Shift配合) BoundColumn:指定哪一列作为Value属性的值,缺省第1列。 Colu

21、mncount:显示的列数 ControlSource:指定Value值存储的绑定字段。 ListIndex:返回组合框或列表框中选定项的顺序号 例:thisform.print(bo1.listindex) thisform.list1.listindex=2,35,List:返回组合框或列表框行号,列号的内容 格式:Object.List(行号,列号) 例:thisform.print(bo1.list(3,2) Selected:当某一项被选中时,Selected属性返回.T.,否则为.F. 格式:Object.Selected(N)=Lexpr 例:Tbo1.selected(3)=.

22、t. FirstElement:当数据类型为数组时指定数组中第一个显示在列表框或组合框中的元素 例:Tbo1.firstelement=2 NumberofElements:当数据类型为数组,指定一个数组中有多少项用来填充组合框或列表框 例:bo1.NumberofElements=3,36,2. 方法选介 (1)AddItem:当组合框或列表框的 RowSourceType属性为0时,使用本方法程序可在列表中添加一个新项 格式:Object.Additem(cItem,行号) (2)RemoveItem:当组合框或列表框的Row Source Type属性为0时,使用本方法程序可在列表中删除

23、一项。 格式:Object.RemoveItem(n) 说明:n为数值表达式,取值范围1Listcount (3)Clear:清除列表框中的所有项,37,3.事件选介 (1)InteractiveChange:当列表框或组合框值发生改变时触发 (2)Click:当用户单击列表框或组合框时触发,【例8.6】列表框的应用:按下图设计一个表单。要求表单运行时,LIST1列表框显示STUD表的所有字段,单击左箭头按钮时,LIST1中选择的字段加入到LIST2中。表单文件P8-6 .scx,38,操作步骤: 按图所示在表单中加入二个列表框、二个标签、二个命令按钮。 在表单的INIT事件中加入如下代码:

24、thisform.list1.value=0 thisform.list2.value=0 open database xsgl use student for i=1 to fcount() thisform.list1.additem(fields(i) next close database,39, 在右向箭头按钮(添加)COMMAND1的CLICK事件中加入如下代码: if thisform.list1.value=0 return endif for i=1 to thisform.list2.listcount if thisform.list1.listitemthisform.

25、list1.value= thisform.list2.list(i) messagebox(已有该字段了) return endif endfor thisform.list2.addlistitem(thisform.list1. listitemthisform.list1.value),40,在左向箭头按钮(删除)COMMAND2的CLICK事件中加入如下代码: if thisform.list2.value=0 or thisform.list2.listindex=0 return endif thisform.list2.removeitemthisform.list2.valu

26、e 在双左向箭头按钮(全部删除)COMMAND3的CLICK事件中加入如下代码: thisform.list2.clear,41,4.列表框生成器 (1)列表项选项卡 选“表或视图中的字段” 相当于属性设置: RowSourceType: 6 RowSource: 如:Student.学号,student.姓名,42,选“手工输入数据” 相当于属性设置: RowsourceType:1 Rowsource: a1,b1,a2,b2,a3,b3 Columncount:2,43,选“数组中的值”相当于属性设置: RowsourceType: 5-数组 RowSource: a FirstElem

27、ent: 1 numberOfElement: Alen(a) 数组元素个数 ColumnCount: Alen(a,2) 数组列数,44,例:在表单上创建一下拉组合框控件,要求列表中显示student表的三个专业(电子、计算机、金融),且表单运行时组合框显示“计算机”。 解:在列表项选项卡中选“数组中的值”,数组名zy 另在表单Load或Init中: public zy(3) zy(1)=“电子” zy(2)=“计算机” zy(3)=“金融” 组合框的Displayvalue设为“计算机” 然后填写生成器的选项卡,45,(2)样式选项卡 (3)布局选项卡 (4)值选项卡:BoundCount

28、,Controlsource,46,例8.7 创建表单实现按学号浏览姓名、课程名、学分、成绩,并统计该生总学分 表单文件P8-7.SCX,Combo1的InteractiveChange(或Init)事件代码 DIMENSION X(1) X(1)=0 THISFORM.LIST1.ROWSOURCE=SELECT STUDENT.姓名, COURSE.课程名,COURSE.学分,GRADE.成绩 FROM STUDENT,COURSE,GRADE WHERE STUDENT.学号=GRADE.学号 and COURSE.课程号=GRADE.课程号 and STUDENT.学号 =THIS.V

29、ALUE INTO cursor table1 SELECT SUM(学分) FROM TABLE1 WHERE 成绩=60 INTO ARRAY X THISFORM.TEXT1.VALUE=X(1) THISFORM.LIST1.REFRESH THISFORM.TEXT1.REFRESH,47,8.2.4 微调控件(Sprinner),用于接受给定范围之内的数值输入,既可以键盘输入也可以单击控件的上下箭头按钮增减当前值。 1. 属性选介 Value:表示微调控件的当前值 KeyBoardHighValue:设定键盘输入数值上限 KeyBoardLowValue:设定键盘输入数值下限 Sp

30、innerHighValue:设定微调数值上限 SpinnerLowValue:设定微调数值下限,48,increment:微调增量值 InputMask:设置输入掩码 ControlSource:设置微调控件的数据源,只能是数值型的变量或字段。 2. 事件 (1)DownClick:按微调控件的向下按钮时触发 (2)UpClick:按微调控件的向上按钮时触发,49,8.3 控件类控件,8.3.1 命令按钮 1. 常用属性选介 (1)Caption:设置命令按钮标题;可为命令按钮设置热键,方法:在某字母前加“ ”,用 Alt 激活。 如: (2)Enabled:确定命令按钮是否响应(不能响应时

31、,按钮呈浅色) (3)Visible:确定命令按钮是不可见。当不可见时,还可用代码访问。 如: mand1.visible=.t.,50,(4)Default:若表单上有不止一个命令按钮,可将其中一个按钮设为缺省按钮,当所有的按钮均为非焦点时,按动Enter,则执行该按钮的Click事件。 (5)Cancel:若该命令按钮的Cancel属性为.T.,用户按Esc键将执行该命令按钮的Click事件。 (6)Picture:设置命令按钮上显示图形。若要在命令按钮上同时显示图文,可设置picture与Caption属性 (7)ToolTipText:设置提示文本。(须表单的ShowTips属性为.T

32、.) 2. 常用事件选介 (1)Click:命令按钮的单击鼠标左键事件 (2)RightClick:命令按钮的单击鼠标右键事件,51,8.3.2 命令按钮组,命令按钮组是一组包含若干命令按钮的容器。其中的各个按钮均有各自的属性、方法、事件。 第1个被创建的命令按钮组对象名:CommandGroup1 1. 属性选介 (1)ButtonCount:设置组容器所包含的 命令按钮的个数 (2)Value:若为数值时,单击组控件内某个按钮,Value将返回此命令按钮的顺序号; 若为字符,单击组控件内某个命令按钮,Value将返回此命令按钮的Caption属性值。,52,2. 命令按钮组生成器 (1)按

33、钮选项卡 ButtonCount:指定所包含命令按钮个数 表格:包括各命令按钮的Caption和Picture (2)布局选项卡 布局按钮、按钮间隔、边框样式,53,3. 命令按钮组与命令按钮 按钮组容器及其所包含的命令按钮有各自独立的属性、方法、事件 (1)容器组及命令按钮的编辑 命令按钮组的编辑(属性、方法、事件)单击 组容器中的命令按钮的编辑(属性、方法、事件) 属性窗口中选择 或 单击 编辑 选定命令按钮 (2)为组容器中的某些命令按钮设置共同属性,如caption属性值。 单击 编辑 Shift+选定命令按钮,54,(3)Click事件的区别 若命令按钮组及其所包含的各命令按钮分别设

34、置了Click事件代码,则用户单击组内空白处,组控件的Click事件被触发;而若单击组内某命令按钮,则该命令按钮的Click事件被触发。 若仅命令按钮组设置了Click事件,则用户不论单击组控件的何处,都触发组控件的Click事件,55,例8.8在学生成绩数据库中增加USER.DBF表,存放账号与密码,表结构:USER: 账号 C(6)、密码 C(6),要求设计如图表单实现按账号核对密码。密码由数字字符构成。表单文件P8-8.scx,Combo1的Valid事件代码 if this.listindex=0 messagebox(没有此账号,请重新输入,或从组合框中选择) this.displa

35、yvalue= else thisform.text1.enabled=.t. endif,CommandGroup1的Click事件代码 do case case this.value=2 thisform.release case this.value=1 if alltrim(thisform.text1.value)=alltrim(user.密码) messagebox(欢迎使用本系统) ELSE messagebox(密码错不能使用本系统!) quit endif endcase thisform.release,56,8.3.3 复选框(checkbox),复选框有两种状态:.T

36、.、.F. 。 复选框外形有两种:方形、按钮 第一个创建的复选框名为check1 1. 属性选介 (1)Style:属性设置如表,57,(2)Value:设置或返回复选框选定状态。 若Value设置为数值型: 0 未选定、1 选定、2 灰色 若Value设置为逻辑型: .F. 未选定、.T. 选定 (3)ControlSource :设置复选框数据源,常绑定逻辑型字段 2. 事件选定 Click:单击复选框时触发 Interactive Change:复选框值发生改变时触发,58,8.3.4 选项按钮组,选项按钮组是包含选项按钮的容器(多选一),当选定某个按钮,其他的选项按钮自动便成为选定。

37、1. 属性选介 (1) style:决定选项按钮的外观,59,(2)Value:要区分选项按钮组与组内的选项按钮各自的属性 选项组的Value属性:有数值与字符两种 数值型:则返回被选定按钮的序号(默认1,表示第1个选项被选定) 字符型:则返回被选定按钮的Caption属性。 选项按钮的Value属性:有数值与逻辑两种,表示选项按钮的状态,1或.T.表示选定,0或.F.表示未选定,60,(3)ControlSource:设置选项组的数据源 若将本属性设置为某字段名,会将选项的caption属性值存在该字段中,要注意字段类型与Value属性的匹配。若选项按钮组的Value属性为字符型,则应选择字

38、符型字段作为数据源。当选定某个选项按钮时,将在该字段中保存该选项按钮的标题; 若Value为数值型时,则应选择数值型字段伯为数据源,当选定某个选项按钮时,将在该字段中保存该选项按钮的序号。 (4)ButtonCount:设置选项按钮组包含的选项按钮个数 2. 选项按钮组生成器 三个卡:按钮、布局、值,61,例8.9 设计如图表单实现按专业统计人数。 表单文件P8-9.scx P217,Optiongroup1的Click事件代码 count for student.专业=this.value to x thisform.text1.value=x,62,8.3.5 计时器控件(Timer),计

39、时器控件是当规定时间间隔一到,系统便自动触发Timer事件。第一个被创建的计时器对象为Timer1,在表单运行时,计时器对象将自动隐藏。 1.属性选介 (1)Interval:指定触发时间间隔,单位为毫秒。(如500) 当为0 时(缺省),将阻止Timer事件发生 (2)Enabled:为.T.时系统按Interval属性规定的时间间隔触发Timer事件,.F.时不触发,直到再为.T.时。 2.事件选介 Timer事件:在Interval属性规定的时间间隔到后触发,63,64,例8.10 修改本章例8.1的封面表单,使封面标题实现由大至小或由小至大的动态变化。表单文件P8-9.scx P218

40、,65,例8.10 设计一个TEST.DBF表,TEST表结构为:题号N(2),题名M,A C(100),B C(100),C C(100),D C(100),学生答案C(2),正确答案 C(2)。创建如图的表单,实现如下要求: 单击表单的命令按钮组某命令按键, 表单右侧显示题号与命令按钮标题号一样的试题,包括该试题的题目内容及A、B、C、D四个选择答案内容,66,选定以图形化方式显示的选项按钮A、B、C、D之一时,将在表单“txt学生答案”文本框中显示学生的选择答案,即所选的选项按钮标题 若“正确答案”复选框选定,则在Text1中显示正确答案,否则不显示,67,8.4 多重容器类,表格、页框

41、、Container容器都是多重容器类。 如: 表格可包含列、列标题和列文本控件; 页框可由多个页构成,而每个页可包含一个表格或其他对象; Container容器中可包含除表单表单集之外的各种控件。,68,8.4.1容器(Container),Container容器可以包含除表单与表单集之外的多个不同类型的对象。(如复选框、页框、命令按钮) 第一个创建的容器名:container1,69,创建Container容器可用表单控件工具栏的容器按钮,要往Container容器内添加对象时,必须先激活容器, 常用属性 Specialeffect: 0-突起、1-凹下、2-平面 Enabled: .T.

42、容器可用;.F.容器不可用 Visible: .T.容器可见;.F.容器隐藏,70,例8.10 设计如图所示的调查表表单。表单文件8-10,71,8.4.2 表格(Grid),表格是按行和列显示数据的容器类控件。表格及所包含的列、列标头、列控件都有各自的属性、方法、事件。 在表单上第1个被创建的表格对象名为Grid1 1. 表格组成 (1)表格(Grid):容器对象,由若干列组成。 (2)列(Column):也是容器类对象,由列标头和列控件组成,72,(3)列标题(Header):默认值为某字段名或字段标题,可修改 (4)列控件:一列必须设置一个列控件,该列中的每个单元格都可用此控件来显示字段

43、值。列控件默认为文本框,但允许修改为本控件字段类型相容的其他控件。 例:逻辑型字段列控件除了可为文本框列控件外,也可为复选框,73,2. 创建表格对象 (1)利用表单控件工具栏 生成器有四个选项卡: 表格项、样式、布局、关系 (2)利用数据环境 将数据表拖至表单即可,74,3. 表格的编辑 (1)改变列数 (2)列的增删(通过字段的增删) (3)调整表格行高与列宽 说明:若要禁止在运行时改变表格标题栏或内容行的行高,可设Allowheadersizing或Allowrowsizing为.F.,75,4.属性选介 (1)表格属性 ColumnCount:指定表格的列数 RecordSourceT

44、ype:指定表格数据源的类型(5种) 表、别名、提示、查询(.qpr)、SQL说明 RecordSource:指定表格对象数据源,76,演示举例: Record Source Type:0 Record Source选表匹配; Record Source Type:1 Record Source选别名匹配; Record Source Type:3 Record Source选查询文件(.qpr)匹配;,77,Record Source Type:4 Record Source选SQL语句匹配; 可用表单Init代码:thisform.grid1.recordsource=select * f

45、rom student into cursor temp1 或在属性窗口中Record Source: select * from student into cursor temp1,78,AllowAddNew:为.T.时,可在表格中的表添加记录。为.F.时只能用Append和Insert命令对表添加记录 ReadOnly:指定只读属性 (2)列属性( 设置列属性前,须先让表格处于编辑状态) ControlSource:指定表格对象某列的数据源,79,CurrentControl:为列指定活动控件(每列可以拥有多个控件,可由生成器指定,默认为Text1) Sparse: 取值.T.时,在列中

46、只有选中的单元格以CurrentControl指定的控件显示,其他单元格仍以文本显示。 (3)列标题属性 Caption:为列标题Header1指定标题,80,例8.11 设计表单编辑STUDENT表,其中性别字段标题改为男性否 ,用复选框表示;并要求能在表格中添加记录与删除记录。 表单文件8-11.SCX,81,表单文件8-11-1.SCX实现单击专业字段下某单元格时,由组合框显示。,82,(操作:使表格为编辑状态,选专业列对象,控件工具栏选组合框,单击表单中专业列的列控件),83,例8.12 设计如图表单,实现按课程名浏览学生选课信息表单文件8-12.SCX,84,8.4.3 页框与页面(

47、pageframe、page),页框是一包含若干页面的容器。如图所示,85,1. 页框的创建 利用控件工具按钮创建。 表单中首创的页框名:PageFrame1 在页框中创建页时,必须先使页框处于编辑状态,首页名Page1 2.页框属性选介 (1)PageCount:指定页框对象所含的页面数 (2)TabStretch:指定页框不能容纳选项卡标题时的处理方式,86,(3)tablestyle: 页框选项卡是否两端对齐(且应tabstretch为0:多重行) (3)PageWidth:指定页框对象的宽度 (4)PageHeight:指定页框对象的高度 (5)ActivePage:指定页框对象中活动

48、页的页码 (如:thisform.PageFrame1.ActivePage=2),87,例:8.13 在表单上创建一个含有二个页面的表单,如图所示,分别用来编辑STUDENT表和COURSE表,88,例8.14 设计如图表单,以实现STUDENT表的浏览、编辑、添加、删除。,89,8.4.4 表单集formset,表单集是一个包含若干个表单的父层的容器类控件。 特点: 可以同时显示或隐藏表单集中的全部表单 以可视的方式调整多个表单位置 表单集及其下的所有表单都存放在同一个.scx 表单集中的所有表单共享同一个数据环境 运行表单集时,其下的所有表单都 被加载,90,1.表单集的创建 表单集创建

49、步骤 表单集中的表单的添加与删除 2.表单集的删除 3.表单集的运行与释放 运行:do form 文件名.scx 表单集一经运行,所包含的表单均被加载,91,表单集释放 方法1:在代码中 release thisfromset 方法2:表单集随最后一个表单释放而释放 例8.15 用表单集查看学生及学生选修课程情况。如图,92,93,8.5 连接类,VFP可以使用其他应用程序创建的数据与控件,以扩展它的功能 VFP提供ActiveX控件、ActiveX绑定控件、超级链接控件,94,8.5.1 ActiveX绑定控件oleboundcontrol,ActiveX绑定控件可在表单上显示表中通用字段的

50、数据(如:通用字段中的文本、声音、图片、视频等) 1. 向表单添加ActiveX绑定控件 可将数据环境中的某通用字段拖至表单中; 或先插入ActiveX绑定控件、在数据环境中添加表、控件的controlsource属性选表的通用型字段,95,说明:首个ActiveX绑定控件的名称为oleboundcontrol1 2. 属性选介 (1)control source:设置ActiveX绑定控件的数据源,96,(2)stretch:指定对图像尺寸进行调整以放入一个OLE对象 0:剪裁,即超出ActiveX绑定对象范围部分的图像不显示 1:等比填充,等比调整图像长宽,使图像不变形 2:变比填充,不等

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 科普知识


经营许可证编号:宁ICP备18001539号-1