1、单击此处编辑母版标题样式,*,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,第七章 表单控件设计,表单控件可分为,5,大类,(,1,)输出类:,标签,图象,线条,形状,(,2,)输入类:,文本框,编辑框,微调按钮,列表框,组,合框,(,3,)控制类:,命令按钮,命令按钮组,复选框,选项按,钮组,计时器,(,4,)容器类:,表格,页框,,Container,容器,(,5,),连结类:,ActiveX,控件,,ActiveX,绑定控件,超级链,接,每个控件均具有若干特征属性,有相同也有差别,通过属性设置可以设计出满足要求的控件。,7.1,输出类控件,输出类控件用于在表单上设置文本和图
2、形,7.1.1,标签,用于在表单上显示提示或说明,一、标签的标题,Caption,属性指定标签的标题,即显示的文本内容,修改方法:,(,1,)属性窗口修改,Caption,属性,(,2,)代码命令,:THISFORM.LABEL1.Caption=“,文本内容”,(,3,)变量设置:,THISFORM.LABEL1.Caption=mc,,,mc,是一个字符型公共变量,二、部分属性,(,1,),AutoSize,(,大小设置):逻辑型,,.T.,表示自动调,整大小与文本内容所占空间一致,(,2,),BackStyle,(,背景设置):,0,(透明),,1,(不透,明),(,3,),Bolder
3、Style,(,边框特性):,0,(无(默认值),,1,(固定单线),用户设置过的属性将以粗体显示,7.1.2,图象、线条与形状,一、图象,Picture,属性可在表单上创建图象,类型可以为,.BMP,,,.ICO,,,.GIF,,,.JPG,等,Picture,属性修改方法:,(,1,)属性窗口设定,(,2,)代码命令,THISFORM.Image1.Picture=“c:Program FilesMicrosoft Visual StudioVfp98fox.bmp”,P201,表,7-1,提供了各类图象的位置,文件夹与,VFP,的安装位置有关。如上例,二、线条,线条用来在表单上显示斜线、
4、水平线和垂直线,1,、斜线,(,1,)创建时,默认为左上角至右下角的一条斜线,(,2,)倾斜度与,Width,属性和,Height,属性有关,(,3,),LineSlant,属性:“,”,左上角至右下角,“,/”,右上角,至左下角,2,、水平线和垂直线,调整线条控件区域使对应边重合,或调整,Width,属性和,Height,属性值,见,P202,表,7-2,三、形状,用来显示各种类型形状:矩型、圆角矩型、正方形圆,角正方形或圆,形状类型与,Curvature,、,Width,和,Height,属性有关,见,P202,表,7-3,P203,例,7-1,(,1,)创建表单,FM.SCX,(,2,)
5、在表单上创建标签,Label1,和形状,Shape1,各一个,.,(,3,)设置属性,见,P203,表,7-4,(,4,)将封面的文字置前于椭圆:选定,Label1,,在,布局,工具栏选定“置前”按钮。,(,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-thisfo
6、rm.shape1.width/2,thisform.shape1.top=y,thisform.label1.left=x-thisform.label1.width/2,thisform.label1.top=y+thisform.shape1.height/2-,;,thisform.label1.height/2,(,6,),Form1,的,RightClick,事件代码编写如下:,thisform.release,表单运行后屏幕显示如下,按鼠标右键推出,7.2,输入类控件,7.2.1,文本框,文本框供用户输入或编辑数据,一、文本框的值,Value,属性值为文本框的值,并显示,修改方法
7、1,)属性窗口修改,Value,属性,(,2,)代码命令,:THIS.Value=VFP,或,thisform.text1.value=“VFP,Value,值,类型,:,数值型,0,、字符型,无,、日期型,、逻辑型,.F.,二、焦点,焦点(,Focus,):,用户操作指定的对象就是焦点所在。,焦点标志:光标或须线框,焦点的变化 (,1,),TAB,键,(,2,)鼠标单击对象,(,3,)代码,Control.Setfocus,例:,THISFORM.Text1.SetFocus,IMEMode,属性值,0,:无控制,1,:打开,IMM,2,:,关闭,IMM,IMEMode,属性设置为,
8、1,后,一旦该文本框控件获得焦点,就打开中文输入法窗口(多为微软拼音输入法),Visible(,可见)属性值,Enabled,(,可用)属性,要使,控件能获得,Focus,Enabled,和,Visible,均应设定为,.T.,三、控件与数据绑定,控件的数据绑定指将控件与某个数据源联系起来,ControlSource,属性:,(,1,)字段:控件的值由字段决定,(,2,)变量:控件的值由变量决定,四、文本框生成器,文本框生成器是用户设定属性的向导,其打开方式为单击文本框对象,击右鼠标键,“,快捷”菜单“生成器”命令,文本框生成器有三个选项卡,1,、格式选项卡,4,种,类型:数值,字符,日期和逻
9、辑,只对字符型数据,等于,Format,属性设置为,A,只对数值数据,相当于,Format,属性设置为,L,只对字符型数据,等于,Format,属性设置为,K,对应,HideSelection,属性(失去焦点时隐藏选定数据),对应属性,Enabled,ReadOnly,属性,选定或设置输入掩码串,相当于属性,InputMask,2,、样式选项卡,SpecialEffects,=3D,SpecialEffects,=Plain,BolderStyle,=1,BolderStyle,=0,左,对齐,右对齐,居中对齐,自动,自动调整文本框大小使其恰好容纳数据,3,、值选项卡,可,利用该组合框的列表指
10、定表或视图中的字段,被指定的字段将用来存储文本框的内容,相当于通过设置,ControlSources,属性来进行数据绑定,7.2.2,编辑框,编辑框用于输入或更改文本,并准许输入多段文字。,编辑框与文本框的区别:,(,1,)编辑框只用来输入或编辑字符型数据,而文本框,适用于四种数据类型,(,2,)文本框只输入一段数据,而编辑框可以输入多段,文字。,P208,例,7-2,(,1,)创建表单,并建立编辑框,Edit1,和文本框,Text1,(,2,),在数据环境添加,SB,表,将,Edit1,与,备注字段,SB.,备,注绑定(设置,ControlSorce,属性),(,3,),Edit1,的,Lo
11、stFocus,事件代码,this.hideselection,=.f.,(,4,),Text1,的,GotFocus,事件代码,this.value=thisform.edit1.seltext,(,5,),执行代码,编辑框显示,SB,表的第一个记录的备注字段内容,选,定一些文字后单击文本框,文本框内会显示所选文字,注释,(,1,)删除在,Edit1,中,选定的文本,THISFORM.Edit1.seltext=,(,2,)将,Edit1,中所选的,文本送剪贴板,_CLIPTEXT=THISFORM.Edit1.seltext,7.2.3,列表框与组合框,列表框与组合框都有一个供用户选择的列
12、表,区别在于:,(,1,)列表框任何时候都显示它的列表,而组合框平时只,显示一个项,(,2,)组合框又可分为下拉组合框(准许输入数据)与下,拉列表框;而列表框仅有选项功能。,一、列表框生成器,其含有四个选项卡,打开方法:创建一个列表框,单击,之,快捷菜单“生成器”命令,1,、“列表项”选项卡,(,1,)表或视图中的字段,三种,类型数据,数据库选择组合框,该种,数据类型相当于:,RowSourceType,:6-,字段(数据源类型);,RowSource,:,逗号分隔的字段(指定列表项的数据源),列表框的每一项:,按所选字段的次序显示字段值;,返回值:,所选项中第一列字段值,能将,字段值填充到列
13、表框,(,2,)手工输入数据,准许在设计时键如数据,并填充到列表框,表格供用户在单元键入数据,一行为一选项,列宽可调整,该种,数据类型相当于:,RowSourceType,:1-,值(数据源类型);,RowSource,:,逗号分隔的数据(指定列表项的数据源),调整列数,相当于设置属性,ColumnCount,(,3,)数组中的值,准许将数组内容或某一部分填充到列表框,指定数组的名称,数组须由程序代码建立,当选定“某一范围的数组”时,用此调整列和行范围,当选定“某一范围的数组”时,用此调整列和行范围,相当于:,RowSourceType,:5-,数组(数据源类型);,RowSource,:,数
14、组名,a,(,指定列表项的数据源),;,FirstElement,:1;,NumberOfElement,:=ALEN(a);,ColumnCount,:=Alen(a,2),ALEN(,),数字,=0,或缺省,返回数组元素数;数字,=1,,返回数组行数;数字,=2,,返回数组列数;,P211,例,7-3,(,1,)在表单建立一个列表框和一个文本框控件,(,2,)在列表框生成器选定“表或视图中的字段”选项,选择,SB,表,将“编号”和“名称”字段添入字段列表,“,确定”,按钮,(,3,),List1,的,InteractiveChange,事件代码,THISFORM.Text1.Value=T
15、HIS.Value,InteractiveChange,事件在用户按键盘或鼠标键时被触,发,(,4,)表单执行结果,DO FORM E7-3,单击某选项,该行第,1,列值(编号)即显示在文本框,2,、“样式”选项卡,指定列表框的样式、所显示的行数,是否递增搜索,行数调整,样式选择,3,、“布局”选项卡,控制列表的列宽和显示,选定则能根据“列表项”选项卡指定的列数自动调整列表框的宽度(,Width,属性),可用鼠标拖动标头右边的列间隔线来调整列宽(修改,ColumnWidths,属性);双击列标头可选择是否隐藏该列显示,4,、“值”选项卡,用来指定返回值和存储返回值的字段,决定返回值的字段或列(
16、属性,BoundColumn,),指定存储返回值的字段(属性,ControlSource,),二、控件值源的类型,列表框可以填充,9,种类型数据(前面涉及,3,种),具体由,RowSourceType,属性指定。见,P212,表,7-5,三、组合框,组合框供用户在其列表中选项,或人工键入一个值,组合框的,Style,属性将该控件分为两种类型,见,P213,表,7-6,P213,例,7-4,(,1,)在表单上创建两个标签,,1,个列表框和一个组合框,(,2,)在数据环境添加,SB,表和,BMDM,表(若有联结则删除),(,3,)属性设置,见,P213,表,7-7,(,4,),Combo1,的,I
17、nteractiveChange,事件代码,THISFORM.LIST1.Refresh,(,5,),Form1,的,Init,事件代码,THISFORM.Combo1.Enabled=.F.,(,6,),List1,的,InteractiveChange,事件代码,THISFORM.Combo1.Enabled=.T.,(,7,),List1,的,Init,事件代码,SET ORDER TO TAG,编号,(,8,)表单执行,先点击,列表框某选项确定所需要的记录,然后打开组合框列表,从中选一项代替,SB,中的部门字段值,四、属性与方法程序选介,1,、,ListCount,属性,返回组合框或列
18、表框中列表项的个数。运行时只读,Control.ListCount,2,、,ListIndex,属性,返回或设置组合框(,列表框,)列表显示时选定的顺序号,,运行时可读写,Control.,ListIndex,=nIndex,要,设置的顺序号,取值范围,1-ListCount,之间,缺省,0,本,属性用顺序号表示某项已经选定,对于下拉组合框,当列表中没有与键入值相同的项时就返回,0,3,、,Selected,属性,用于分辨组合框或列表框中某一列表项是否被选中,,当选中时,Selected,属性返回,.T.,,,否则返回,.F.,Form.Control.Selected(nIndex)=1Ex
19、pr,列表项的显示顺序号,可取,.T.,或,.F.,,,用来设置属性值,本,属性设计时不可用,运行时可读写,4,、,AddItem,方法,当,组合框或列表框的,RowSourceType,属性为,0,时,使用,本方法程序可在其列表中添加一个新项,Control.AddItem(cItem,nIndex,nColumn,),新项的,字符表达式,新项的,位置,放置新,项的,列,确省为,1,若,nIndex,缺,省,当,Sorted,属性为,.T.,时新项将按字母顺序插入列表,否则添加到表末尾,P216 例7-5,(,1,)在表单上建立一个列表框和一个标签,(,2,),Label1,属性设置,Aut
20、oSize,:.T.,(,3,),List1,属性设置,RowSourceType,:0,MoverBars,:.T.,(,4,),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,(,5,),List1,的,Init,事件代码,THIS.Additem,(,音乐,),THIS.Additem,(,上网,),THIS.Additem,(,文学,),THIS.Additem,(,
21、摄像,),THIS.Picture(1)=c:Program FilesMicrosoft Visual,;,StudioVfp98GALLERYGRAPHICSMUSIC.ICO,THIS.Picture(2)=c:Program FilesMicrosoft Visual,;,StudioVfp98GALLERYGRAPHICSINTERNET.ICO,THIS.Picture(3)=c:Program FilesMicrosoft Visual,;,StudioVfp98GALLERYGRAPHICSCLASSLIB.ICO,THIS.Picture(4)=c:Program Files
22、Microsoft Visual,;,StudioVfp98GALLERYGRAPHICSVIDEO.ICO,THIS.Listindex,=1,(,5,)表单运行,表单运行后,单击第三项,5,、,Value,与,DisplayValue,属性,Value,属性返回在列表中选定的项,,DisplayValue,属性,则返回组合框中键入的文本,P217,例,7-6,(,1,)在表单创建一个组合框和一个文本框,(,2,),Combo1,属性设置,Style:0,RowSourceType,:6,RowSource,:SB.,编号,(,3,),Combo1,的,KeyPress,事件代码,LPARA
23、METERS,nKeyCode,nShiftAltCtrl,IF,nKeyCode,=13,IF,THIS.ListIndex,=0,THIS.RowSourceType,=0,THIS.AddItem(THIS.DisplayValue,),THIS.Value=,THIS.DisplayValue,INSERT INTO c:VFPEXSB(,编号,),;,VALUES(THIS.DisplayValue,),THIS.RowSourceType,=6,ENDIF,ENDIF,(,4,),Combo1,的,InteractiveChange,事件代码,THISFORM.Text1.Valu
24、e=THIS.Value,(,5,)运行,用户键入数据并回车,程序用,ListIndex,属性判别组合框列表中是否已包含与键入值相同的项。,若没有,则用,AddItem,将其添加到列表末尾,并用,INSERT-SQL,命令将它存入,SB,表新记录的编号字段。,6,、,List,属性,返回组合框或列表框第行,nRow,,,nCol,列的内容,Control.List(nRow,nCol,),例如:为显示单列列表框的全部列表项,可为表单的,Click,事件编写如下代码,FOR i=1 T THISFORM.Combo1.ListCount,?THISFORM.Combo1.List(i),ENDF
25、OR,7.2.4,微调按钮,微调按钮用于接受给定范围之内的数值输入。它即可,用键盘输入,也可单击该控件的上箭头或下箭头来增减,当前值。,一、属性简介,(,1,),Value,:,微调控件的当前值,(,2,),KeyBoardHighValue,:,键盘输入的最高限值,(,3,),KeyBoardLowValue,:,键盘输入的最低限值,(,4,),SpinnerHighValue,:,按钮输入的最高限值,(,5,),SpinnerLowValue,:,按钮输入的最低限值,(,6,),Increment,:按,一次按钮的增减数(默认为,1,),(,7,),InputMask,:,设定输入掩码,二、事件简介,(,1,),DownClickEvent,:,微调控件的向下按钮事件,(,2,),UpClickEvent,:,微调控件的向上按钮事件,






