第七章-表单控件设计概要.ppt_第1页
第七章-表单控件设计概要.ppt_第2页
第七章-表单控件设计概要.ppt_第3页
第七章-表单控件设计概要.ppt_第4页
第七章-表单控件设计概要.ppt_第5页
免费预览已结束,剩余35页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第七章 表单控件设计,输出类:标签、图象、线条、形状 输入类:文本框、编辑框、微调控件、列表框、组合框 控制类:命令按钮、命令按钮组、复选框、选项按钮组、计时器 容器类:表格、页框、Container容器 连接类:Active X控件、Active X绑定控件、超级链接,第七章 表单控件设计,7.1 输出类控件 该类控件包括标签、图象、线条、形状。 下面通过两个例题看一看这些控件对象如何在表单上设计以及如何设计它们的属性。 例07-1 设计如右图所示的表单。,第七章 表单控件设计,例7-1 设计如右图所示的应用程序的封面。 设计步骤如下: 1.在命令窗口输入: MODI FORM E7-1 2

2、.在表单上创建标签和形状; 3.设置属性,如书表7.4; 4.将封面文字置前于椭圆。,第七章 表单控件设计,5.Form1的Activate事件代码 THISFORM.Shape1.Width=THISFORM.Label1.Width*1.3 THISFORM.Shape1.Height=THISFORM.Label1.Height*2 x=THISFORM.Width/2 y=THISFORM.Height/4 THISFORM.Shape1.left=x-THISFORM.Shape1.Width/2 THISFORM.Shape1.Top=y THISFORM.Label1.Left=

3、x-THISFORM.Label1.Width/2 THISFORM.Label1.Top=y+THISFORM.Shape1.Height/2-THISFORM.Label1.Height/2 6.Form1的RightClick事件代码 THISFORM.Release,第七章 表单控件设计,7.1 输出类控件 我们可以编写如下程序先后调用封面与菜单: *MAIN.PRG CLEAR do form e7-1 wait do sb.mpr RETURN 在执行上述程序后,出现封面表单时,注意观察屏幕。(标签文字处的开始会有“光标”)。,第七章 表单控件设计,7.2 输入类控件 本节主要包括

4、文本框、编辑框、列表框、组合框和微调控件。 7.2.1 文本框 文本框控件是一个基本控件,供用户输入或编辑数据。 一、文本框的值 Value属性用于指定文本框的值,并在框中显示出来。可以通过属性窗口或代码形式设定。代码形式如: THIS.Value=“你好!” Value 包括数值型、字符型、日期型或逻辑型4种类型之一。 在输入数据时,按回车键表示结束。,第七章 表单控件设计,7.2 输入类控件 7.2.1 文本框 二、焦点 焦点是指对象被选定。焦点的标志可以是文本框内的光标,命令按钮的虚线框等等。 焦点的获得可以通过Tab键来切换或单击对象来激活等;也可用代码来获得,如以下方法程序的功能是对

5、指定的控件设置焦点。 Control.SetFocus 如THISFORM.Text1.SetFocus 要对控件设置焦点,其Enabled与Visible属性均为.T.。与焦点有关的两个事件是:GotFocus 和LostFocus 。,第七章 表单控件设计,7.2 输入类控件 7.2.1 文本框 三、控件与数据绑定 (1)数据绑定的概念:数据绑定是指将文本框与某个数据源联系起来。用文本框的ControlSource属性来指定。数据源有数据表的字段和变量两种。 (2)数据绑定的功效:文本框与数据绑定后,控件值便与数据源的数据一致了。这时文本框与数据源之间可以相互传递数据。,第七章 表单控件设

6、计,7.2 输入类控件 7.2.1 文本框 四、文本框生成器 1.格式选项卡: 2.样式选项卡 3.值选项卡 下面我们看一下,文本框生成器的使用。,第七章 表单控件设计,7.2 输入类控件 7.2.2 编辑框 编辑框用于输入或编辑文本,它只能编辑文本,即字符型数据。它可以输入多段文字。它一般用来编辑数据表中数据量比较大的备注字段。VFP提供了垂直滚动条。 文本框可以编辑4种数据,但它只能在一个段落输入数据。 编辑框与文本框的区别见右图。 编辑框的生成器与文本框类似。,第七章 表单控件设计,例7-2 设计一个表单,要求当文本框得到焦点时能立即显示在编辑框中选定的文本。 (1)在表单上创建一个文本

7、框和编辑框; (2)在数据环境中添加SB,将Edit1编辑框与备注字段SB.备注绑定。 (3)Edit1编辑框的LostFocus事件代码如下: THIS.HideSelection=.F. (4)Text1文本框的GotFocus事件代码如下: THIS.VALUE=THISFORM.Edit1.seltext,第七章 表单控件设计,7.2 输入类控件 7.2.3 列表框与组合框 列表框和组合框都有一个供用户选项的列表,它们之间的区别如下: (1)列表框任何时候都显示它的列表;而组合框平时只显示一个选项,待用户单击它的向下按钮后才能显示可滚动的下拉列表, (2)组合框分为下拉组合框和下拉列表

8、框,前者允许输入数据,后者不允许。 列表框和组合框的区别如右图所示。,第七章 表单控件设计,7.2 输入类控件 7.2.3 列表框与组合框 一、列表框生成器 1.列表项选项卡:指定要填充到列表框中的项。数据有3种类型:表或视图中的字段,手工输入数据或数组中的数据。 2.样式选项卡;指定列表框的样式、所显示的行数,是否递增搜索。 3.布局选项卡:用于控制列表的列宽和显示。 4.值选项卡:包含两个组合框,分别用来指定返回值(BoundColumn属性)以及存储返回值的字段(ControlSource属性)。 二、控件值源的属性 共有9类。见书212页表7.5。它们均由RowSourceType属性

9、指定。,第七章 表单控件设计,例7-3 在列表框中填充SB表的编号和名称两个字段,要求选定列表框的任一项,就能使文本框中显示编号字段值。 (1)在表单中创建1个列表框控件和1个文本框控件。 (2)用列表框生成器或属性窗口设置列表框控件值类型和值。SB中的“编号”和“名称”两个字段值为其值。 (3)List1的Interactive Change 事件代码如下: THISFORM.Text1.Value=THIS.Value,第七章 表单控件设计,7.2 输入类控件 7.2.3 列表框与组合框 三、组合框 组合框的功能是供用户在其列表中选项,或人工键入一个值。组合框的Style属性将该控件分为两

10、种类型。 Style属性为0,代表下拉组合框; Style属性为2,代表下拉列表框。 下面通过例题来看一下组合框的应用。,第七章 表单控件设计,例7-4 试用BMDM表的代码来修改SB表的部门字段。要求SB表在列表框显示,BMDM表在组合框显示;当列表框确定一个记录后,便可用组合框的选项来替代表的部门字段值。 (1)在表单上创建2个标签,1个列表框和1个组合框 (2)在数据环境中添加SB和BMDM (3)属性设置:见表7.7。 (4)Combo1的InteractiveChange事件: THISFORM.LIST1.ReFresh (5)Form1的Init事件: THISFORM.Comb

11、o1.Enabled=.F. (6)List1的InteractiveChange事件: THISFORM.Combo1.Enabled=.T.,第七章 表单控件设计,7.2 输入类控件 7.2.3 列表框与组合框 四、属性与方法程序简介 1.ListCount属性 Control.ListCount 功能:返回组合框或列表框中列表项的个数。该属性在设计时不可用,在运行时为只读属性。 2.ListIndex属性 Control.ListIndex=nIndex 功能:返回或设置组合框(列表框)列表显示时选定项的顺序号。可取1到Listcount之间的整数之一。该属性在设计时不可用,在运行时为只

12、读属性。 3.Value与DisplayValue属性 Value属性返回在列表中选定的项,DisplayValue返回组合框中键入的文本。,第七章 表单控件设计,7.2 输入类控件 7.2.3 列表框与组合框 四、属性与方法程序简介 4.Selected属性 Form.Control.Selected(nIndex)=LExpr 功能:用于分辨组合框或列表框中某一列表项是否被选中。当选中时Selected属性返回.T.,否则.F.。该属性在设计时不可用,在运行时为只读属性。 5.AddItem方法程序 Control.AddItem(cItem,nIndex,nColum) 功能:当组合框或

13、列表框的RowSourceType属性为0时,使用本方法程序可在其列表中添加一个新项。 与AddItem相关的两个方法程序:RemoveItem方法程序能从RowSourceType属性为0的列表中删除一项。Requery方法程序当RowSource中的值改变时能更新列表。,例7-5 设计一个表单,为表单中的列表框增加新项,并满足如下要求: (1)在列表项的行首设置一个可移动的按钮,并在每个列表项左侧显示一个图形,如右图所示。 (2)若用鼠标单击列表中的某选项,能在标签上显示顺序号与选项。 操作步骤:1.在表单上创建1个列表框和1个标签。 2.Label1属性设置:AutoSize:.T. 3

14、.List1属性设置:RowSourceType:0 MoveBars:.T. 4.List1的Init的事件代码如下: THIS.AddItem(音乐) THIS.AddItem(上网) THIS.AddItem(文学) THIS.AddItem(摄像) THIS.AddItem(风格) THIS.Picture(1)=MUSIC.ICO THIS.Picture(2)=INTERNET.ICO THIS.Picture(3)=CLASSLIB.ICO THIS.Picture(4)=VIDEO.ICO THIS.Picture(5)=FRMSTYLE.ICO THIS.Listindex=

15、1,5.List1的Click事件代码编写如下: FOR i=1 TO THIS.ListCount IF THIS.Selected(i)=.T. THISFORM.Label1.Caption=STR(i,1); +SPACE(1)+THIS.Value ENDIF ENDFOR,例7-6 在表单上创建1个组合框和1个文本框。要求如下: (1)组合框的列表包含SB表的编号字段值。 (2)能在组合框中为其列表键入新选项。 (3)若选取组合框列表中的项(也可以是刚添入的新选项),便能将它送入文本框。,1.在表单上创建1个组合框和1个文本框。 2.Combo1属性设置。Style:0 RowSo

16、urceType:6 RowSource:SB.编号 3.Combo1的KeyPress事件代码编写如下: LPARAMETERS nKeyCode, nShiftAltCtrl IF nKeyCode=13 IF This.ListIndex=0 THIS.RowSourceType=0 THIS.AddItem(THIS.DisplayValue) THIS.Value=THIS.DisplayValue INSERT INTO SB11 (编号) ; VALUES(THIS.DisplayValue) THIS.RowSourceType=6 ENDIF ENDIF,4.Combo1的I

17、nteractiveChange事件: THISFORM.Text1.Value=THIS.Value,第七章 表单控件设计,7.2 输入类控件 7.2.3 列表框与组合框 四、属性与方法程序简介 6.List属性 Control.List(nRow,nCol) 功能:返回组合框或列表框第nRow行,nCol列的内容。 如下列表单Click事件代码可以显示单列组合框的全部列表项。 FOR i=1 TO THISFORM.Combo1.ListCount ?THISFORM.Combo1.List(i) ENDFOR,第七章 表单控件设计,7.2 输入类控件 7.2.4 微调控件 微调控件用于接

18、受给定范围之内的数值输 入。它即可用键盘输入,也可单击该控件的上箭 头按钮来增减其当前值。 一、属性简介 1.Value:表示微调控件的当前值。 2.KeyBoardHighValue:设定键盘输入数值高限 3.KeyBoardLowValue:设定键盘输入数值低限 4.SpinnerLowValue:设定按钮微调数值低限 5.SpinnerHighValue:设定按钮微调数值高限 6.Increment:设定按一次箭头按钮的增减数,默认为1.00。 7.InputMask:设置输入掩码。即设定数据格式。微调控件默认带两位小数。如微调控件绑定到字段,则输入掩码的位数不得小于字段的宽度,否则显示

19、一串*号。 二、事件选介 1.DownClickEvent:按微调控件的向下按钮事件。 2.UpClickEvent:按微调控件的向上按钮事件。,第七章 表单控件设计,7.3 控制类控件 7.3.1 命令按钮与命令按钮组 命令按钮在应用程序中起控制作用,用于完成某一特定的操作,其操作代码通常放置在命令按钮的Click按钮中。 例7-7 设计一个如左下图所示的密码输入窗口,要求最多允许输入3次密码。密码正确,进入右下图所示表单。,第七章 表单控件设计,左表单操作步骤: (1)创建一个表单,在其中创建标签和文本框各一个,命令按钮2个。 (2)设置属性。见书P219表7.8。 (3)Form1的Lo

20、ad 事件代码: public i i=0 (4)Command1的C lick事件代码: i=i+1 if thisform.text1.value=123456 thisform.release do form e7-7h.scx else if i3 messagebox(密码错,请重新输入!) thisform.text1.value= thisform.text1.setfocus else message(密码错,禁止进入系统!) thisform.release endif Endif (5)Command2的Click事件代码: thisform.release,第七章 表单控

21、件设计,7.3 控制类控件 7.3.1 命令按钮与命令按钮组 二、命令按钮的外观设计 1.文字命令按钮: (1)命令按钮标题:用CAPTION属性设置。 (2)字体、大小、粗体、下划线,对应的属性分别为FontName、FontSize、FontItalic、FontItalic、FontUnderLine。 (3)标题折行显示:将WordWrap属性设置为.T.。 (4)在标题中加热键:在某字符前插入符号“”,该字符就成为热键。如Command1表示a成为热键,按一次热键就会触发Click事件。 2.图文命令按钮 (1)命令按钮上显示图形:利用Picture属性设置一图形文件。 (2)命令按

22、钮上显示图文:即设置图形又设置标题即可。,第七章 表单控件设计,7.3 控制类控件 7.3.1 命令按钮与命令按钮组 二、命令按钮的外观设计 3.能显示提示框的命令按钮:将表单的ShowTips设置为.T.,并在命令按钮的ToolTipText属性中设置提示文本。 4.使命令按钮失效 (1)使命令按钮淡化:将Enabled属性设置False。 (2)命令按钮淡化时显示图形:在DisablePicture属性中设置一个图形文件。 5.指定命令按钮按下时显示的图象:在DownPicture属性设置一个图形文件。,第七章 表单控件设计,7.3 控制类控件 7.3.1 命令按钮与命令按钮组 二、命令按

23、钮的外观设计 6.隐藏命令按钮 (1)将Style属性设置为1(表示不可见),为操作该不可见的命令按钮,最好设置MousePointer属性设置为不同寻常的指针形状。当鼠标指向该按钮时会以设定的形状显示,用户就可以操作了。 (2)利用Visible也可以隐藏命令按钮,但隐藏后不可见,利用MousePointer属性设置为不同寻常的指针形状也不行,除非在代码中重新设定该按钮属性。 7.缺省命令按钮:将Default属性和Enabled属性设置为.T.。 8.附加Escape键命令按钮:将Cancel属性设置为.T.。此时按ESC键将执行命令按钮的Click事件。,第七章 表单控件设计,7.3 控

24、制类控件 7.3.1 命令按钮与命令按钮组 三、命令按钮组生成器 命令按钮组控件是表单上的一个容器,它可包含若干个命令按钮,并能统一管理这些命令按钮。命令按钮组与组内的各个命令按钮都有自己的属性、事件、方法程序,既可单独操作各个命令按钮组,也可对组控件进行操作。 下面看一下命令按钮组生成器如何操作。,第七章 表单控件设计,7.3 控制类控件 7.3.1 命令按钮与命令按钮组 四、命令按钮组及其命令的操作 1.Click事件的判别 对于命令按钮组及其每一个命令按钮分别设定Click事件 2.容器中对象的引用:遵守逐层引用规则。如: THISFORM.CommandGroup1.Command1.

25、Caption 3.容器及其对象的编辑 (1)容器本身的编辑:选定容器即可编辑。 (2)容器中对象的编辑:指向容器单击右键,选择编辑命令,然后就可以编辑容器中对象了。 (3)设置共同属性:选定容器中的某些对象,然后设置。,第七章 表单控件设计,7.3 控制类控件 7.3.2 复选框与选项按钮组 一、复选框的外观 复选框可被用户指明选定还是清除,其外观有方框和按钮两类。 如右图所示。 二、复选框的值 Value属性表示了复选框的状态:0或.F.表示清除;1或.T.表示选定;2表示灰色状态。,第七章 表单控件设计,例7-9 设计一个表单,要求能根据SB表统计车间任意组合后拥有的设备台数。如右图所示

26、。设计步骤如下: 1.创建1个表单,其中创建3个复选框,1个命令按钮和1个标签。 2.属性设置:见表7.10。 3.在数据环境中添入SB表。 4.Command1的Click事件代码编写如下: STORE 0 TO bm21,bm22,bm23 IF THISFORM.Check1.value=1 COUNT FOR 部门=21 TO bm21 ENDIF IF THISFORM.Check2.value=1 COUNT FOR 部门=22 TO bm22 ENDIF IF THISFORM.Check3.value=1 COUNT FOR 部门=23 TO bm23 ENDIF THISFO

27、RM.LABEL1.CAPTION=共有:+str(bm21+bm22+bm23,2)+台,例7-10 从例-3所产生的快速表单SBQ.SCX(如上左图所示)复制出SBXG.SCX(如上右图所示)。具体功能要求如下: 1.若输入编号全为0,或以9开头给予信息提示。 2.即可在文本框中输入名称,也可在组合框中选择名称。 3.将部门1文本框设为只读,在其右边列表框选择部门名称显示在该文本框中。 4.用微调控件来修改价格,5.使设备1复选框的标题随其值而变化,值为.T.时显示主要设备,否则显示非主要设备。 6.在窗口右上角添加两个标签和1个文本框,用来显示记录号。 7.添加命令按钮组,包含3个命令按

28、钮,功能分别为上一条记录、下一条记录、退出表单。 8.在表单中添加1条发亮的线。,例7-10 主要操作如下: 1.复制表单。打开SBQ.SCX,然后另存为SBXG.SCX 2.按题目要求设置好各控件的位置。 3.将部门1文本框设置为只读。 4.数据环境设置:添加BMDM和SB两个表,并取消它们之间的关系。 5.属性设置。所有标签改为宋体,字体大小属性为10。属性见表7.11。 编号1等控件的绑定在执行快速表单时已完成。 6.Form1的Refresh事件代码如下: Yh=RECNO() 7.编号1的Valid事件代码编写如下: IF THIS.VALUE=9 MESSAGEBOX(超出范围!)

29、 ENDIF,8.Combo1的Click事件代码如下: THISFORM.名称1.Value=THIS.Value 9.List1的Click事件代码如下: THISFORM.部门1.Value=THIS.Value 10.主要设备1InteractiveChange事件代码如下: IF THIS .Value THIS.Caption=主要设备 ELSE THIS.Caption=非主要设备 ENDIF 11.主要设备1Refresh事件代码如下: IF THIS .Value & EVALUATE(THIS.ControlSource) THIS.Caption=主要设备 ELSE TH

30、IS.Caption=非主要设备 ENDIF,12.Commandgroup1的Click事件代码如下: DO CASE CASE THIS.Value=1 IF recno()1 SKIP -1 ENDIF THISFORM.REFRESH CASE THIS.Value=3 THISFORM.Release ENDCASE,第七章 表单控件设计,7.3 控制类控件 7.3.2 复选框与选项按钮组 三、选项按钮组 选项按钮组是一个可包含若干个选项按钮的容器,单个选项按钮不能独立存在,用户使用时只能从中选定一项。 1.选项按钮的外观 如右图所示,选项按钮分为标准样式和按钮两类。它们可用选项按钮组生成器来设定。要想编辑其中单个按钮的属性,可利用快捷菜单选编辑或使用属性窗口确定某一按钮后进行设定。,第七章 表单控件设计,7.3 控制类控件 7.3.2 复选框与选项按钮组 三、选项按钮组 2.Value属性 单个选项按钮Value属性:值为1表示选定,为0表示未选定。 选项按钮组的属性:表明被选定按钮的序号,默认为1。若该

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论