visual-foxpro-实用教程(第2版)(十一五国家规划)第05章-控件课件_第1页
visual-foxpro-实用教程(第2版)(十一五国家规划)第05章-控件课件_第2页
visual-foxpro-实用教程(第2版)(十一五国家规划)第05章-控件课件_第3页
visual-foxpro-实用教程(第2版)(十一五国家规划)第05章-控件课件_第4页
visual-foxpro-实用教程(第2版)(十一五国家规划)第05章-控件课件_第5页
已阅读5页,还剩97页未读 继续免费阅读

下载本文档

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

文档简介

第5章控

5.1标签

5.2文本框和编辑框

5.3命令按钮和命令按钮组

5.4列表框和组合框

5.5选项按钮组

5.6复选框

5.7页框和页

5.8表格

5.9图像框和图片框

5.10计时器

5.11微调按钮

5.12Active控件

第5章控件5.1标签15.1标签

标签用于显示文本,一般用于提示信息。显示文本的格式由标签的属性设置。 通过上述属性与标签的其他属性配合一般能够满足提示信息的各种要求。同时还能产 生许多的特殊效果。【例Ex_TextMove】 “欢迎”在屏幕上移动。

(1)

设计表单设置属性 在表单上设计一个 标签,属性如下: Caption=欢迎 FontName=楷体_GB2312 FontSize=48 表5.1标签常用属性

FontBold=.T. ForeColor=255,0,0 Alignment=2

属性功能Caption显示文本内容,最多允许256个字符BackStyle指定背景是否透明。0-透明:可看到标签后的东西1-不透明:背景由标签设置AutoSize指定是否可自动调整标签的大小。WordWrap显示是否可换行。Alignment指定文本在标签中的对齐方式。0-左1-右2-中央5.1标签 标签用于显示文本,一般用于提示信息。显示文本的25.1标签(2)

编写事件代码*标签的Click事件代码

DOWHILE.T. FORI=1TOTHISFORM.WIDTHstep10 THIS.LEFT=I =INKEY(1) &&延时1秒 NEXTI ENDDO用标签产生特殊效果的办法:

(1)

字排多行

在需换行的地方加Chr(13)回车符。例如Caption=”欢”+Chr(13)+”迎”。

如果要改变字的方向,设FontName属性为带@的字体名。

(2)

字从小到大 用一个循环不断改变标签的FontSize,同时调整Top和Left的属性值。 THIS.Top=THISFORM.HEIGHT/2-THIS.FontSize/2

(3)

立体字 设计两个标签,将另一个标签的相对位置略加移动,ForeColor设置不同的颜色,就可产生立体字的效果。

5.1标签(2)编写事件代码35.2文本框和编辑框

文本框(TextBox)用于显示、输入和修改数据。

例如,

将Value属性设置为{},文本框的内容将会自动转变为VFP系统默认的日期格式。

编辑框(EditBox)与文本框的功能类似,也是用于显示、输入和修改数据。其区别是文本框一般为一行,输入的内容放不下会自动向左移动。当文本框的ControlSource与表字段数据源绑定时不能放内容太长的字段或备注字段。而编辑框则为若干行一个区域,当编辑框的ScrollBars属性设为.T.,还可包含滚动条,因此更适合编辑较多文本内容。

另外,IntegralHeight属性可控制编辑框的高度是否自动调整,以便其最后一项能被完整显示。

5.2文本框和编辑框 文本框(TextBox)用于显示、45.2文本框和编辑框文本框与编辑框有时会用到下列事件:When事件:在得到焦点之前发生;GotFocus事件:在得到焦点时发生;Valid事件:在失去焦点之前发生;LostFocus事件:在失去焦点后发生。图5.4用户登录界面

例如,可在When事件代码中保存文本框的原内容,可在Valid事件代码中验证文本框数据输入内容的正确性。Valid事件中的RETURN返回.F.,则焦点不会移开。表单释放时忽略RETURN值的影响。

【例Ex_Login】

在主程序Ex_txt1中先调用表单Ex_Login进行用户登录,如果用户名和口令正确,调用表单Ex_EditGZ执行。(1)设计表单设置属性

(2)设置属性 口令文本框(txtPassWord)属性PasswordChar=*5.2文本框和编辑框文本框与编辑框有时会用到下列事件: 例55.2文本框和编辑框(3)

编写代码 *表单的Activate事件代码 THIS.txtPASSWORD.Enabled=.f. &&输入登录名后才能输口令 THIS.txtNAME.SetFocus &&启动后先输入登录名 *txtNAME文本框KeyPress事件代码 LPARAMETERSnKeyCode,nShiftAltCtrl IFnKeyCode=13.AND.!EMPTY(THIS.VALUE) &&输登录名后回车即进入输口令 THISFORM.txtPASSWORD.Enabled=.t. THISFORM.txtPASSWORD.SetFocus ENDIF *“确定(cmdOK)”按钮的Click事件代码

UNAME=THIS.PARENT.txtNAME.VALUE Yes=.F. DOCASE CASEUname="ZHANG".AND.TRIM(THISFORM.txtPASSWORD.VALUE)=="123456" Yes=.T.CASEUname="WANG".AND.TRIM(THISFORM.txtPASSWORD.VALUE)=="681266" Yes=.T.ENDCASE5.2文本框和编辑框(3)编写代码65.2文本框和编辑框

IfYes Messagebox(“登录成功!”) Else Messagebox(“用户名或口令不对!”) Endif THISFORM.Release CLEAREVENTS *“退出(cmdExit)”按钮的Click事件代码

THISFORM.Release CLEAREVENTS

*Ex_txt1.prg程序代码

PUBLICYES SETDEFAULTTOD:\RY_MIS DOFORMEx_LOGIN READEVENTS IFYES DOFORMEx_EditGZ READEVENTS ENDIF CANCEL5.2文本框和编辑框 IfYes *Ex_txt175.2文本框和编辑框【例Ex_TextCopy】将左边编辑框中的选择内容复制到右边文本框中。也可在左边编辑框自动选择与右边文本框内容相同的部分。

(1)

设计表单 表单包含下列对象:左边编辑框Edit1,右边文本框Text1,中间一个命令按钮Command1。 图5.5文本框内容复制界面

5.2文本框和编辑框【例Ex_TextCopy】将左边编辑85.2文本框和编辑框

(2)设置对象属性

(3)编写事件代码 *“->(Command1)”按钮的Click事件代码 THIS.Parent.Text1.Value=THIS.Parent.Edit1.SelText *编辑框Edit1的GotFocus事件代码 EditBox::GotFocus

str1=Trim(This.parent.Text1.Value) d=At(str1,This.Value) Ifd>0 This.SelStart=d-1 ` This.SelLength=Len(str1) Else This.SelLength=0 Endif5.2文本框和编辑框(2)设置对象属性 *编辑框E95.2文本框和编辑框 用户可观察和操作:

(1)

启动后左边编辑框的内容全部被选择; (2)

用户可在左边编辑框重选部分内容后,选“->”命令按钮,则选择的内容在右边编辑框中出现;(3)在右边编辑框重输左编辑框中包含的部分内容,单击左编辑框,看与右边编辑框相同的内容是否自动被选择。

5.2文本框和编辑框 用户可观察和操作:105.3 命令按钮和命令按钮组

当表单需多个命令按钮时,可使用命令按钮组(CommandGroup)。命令按钮组中各命令按钮排列方向和位置根据需要进行调整。操作次序如下:

(1)

选命令按钮组;

(2)

按右键,在快捷菜单中选“编辑”;

(3)

选命令按钮后根据用户需要进行调整。

也可在属性窗口的对象选择列表框中直接选择命令按钮组中各命令按钮对象名。

5.3 命令按钮和命令按钮组 当表单需多个命令按钮时,可使115.3 命令按钮和命令按钮组 说明表单中三个命令按钮属性设置情况:

(1)Caption=”确定”,单击该按钮可执行Click事件代码。

(2)Caption=”\<C取消”,Cancel=.T.,单击该按钮、敲C键、按Esc键均可执行Click事件代码。

(3)Picture=”d:\vfp98\fox.bmp”,单击该按钮可执行Click事件代码。

命令按钮中用得最多的事件为Click,命令按钮组中有Click事件。选择命令按钮组中的命令按钮时,如本身包含Click事件代码,则就执行该代码。如本身不包含Click事件代码,则执行命令按钮组Click事件代码。图5.6命令按钮标题的三种情况

5.3 命令按钮和命令按钮组 说明表单中三个命令按钮属性设置125.3 命令按钮和命令按钮组【例Ex_EditGZ_Gcmd】将Ex_EditGZ表单(第二章)中的命令按钮换成命令按钮组,对比使用方法。(1)

修改界面5.3 命令按钮和命令按钮组【例Ex_EditGZ_Gcmd135.3 命令按钮和命令按钮组*CommandGroup1的Click事件代码sel=This.ValueDOCASECASEsel=1 GOTOPCASEsel=2 IF!BOF() SKIP-1 ENDIFCASEsel=3 IF!EOF() SKIP ENDIFCASEsel=4 GOBOTTOMENDCASETHISFORM.REFRESH*退出(Command5)的Click事件代码THISFORM.Release5.3 命令按钮和命令按钮组*CommandGroup1的145.3 命令按钮和命令按钮组【例Ex_Edit1】按人员编号增删改基本情况数据。(1)

设计表单界面 新建表单打开数据环境将RY数据库中的工资情况表添加到数据环境中拖数据环境的工资情况表的字段到表单中。 建立文本框txtBH用于输入定位人员的编号,建立定位(cmdLOCATE)、追加和删除三个命令按钮。 图5.8增删改基本情况数据界面(1)

5.3 命令按钮和命令按钮组【例Ex_Edit1】按人员编号155.3 命令按钮和命令按钮组 (2)

设置对象属性 设置TxtBH的属性InputMask=99999。 字段文本框的ControlSource属性如下: txt编号.ControlSource=基本情况.编号 txt姓名.ControlSource=基本情况.姓名 txt出生时间.ControlSource=基本情况.出生时间

(3)

编写代码 *“定位”命令按钮的Click代码 bh=Trim(This.Parent.txtBH.Value) jlh=recno() LocateFor编号=bh IfEof() Gojlh =MessageBox(“没有找到该编号!”) Else Thisform.Refresh Endif*“追加”命令按钮的Click代码 AppendBlank Thisform.Refresh *“删除”命令按钮的Click代码 yn=Messagebox(“是否要删 除?",4+32)**未曾提过 Ifyn=6 Delete IfEof() Gotop Else Skip Endif Thisform.Refresh Endif5.3 命令按钮和命令按钮组 (2)设置对象属性*“追165.3 命令按钮和命令按钮组(4)

可进一步考虑的问题§

在TxtBH文本框中输回车也进行记录定位*TxtBH文本框的VALID事件代码IF!EMPTY(THIS.VALUE) THIS.PARENT.cmdLOCATE.Click&&打回车启动定位事件代码ELSE RETURN.F. &&TxtBH文本框为空不能离开ENDIF5.3 命令按钮和命令按钮组(4)可进一步考虑的问题175.4列表框和组合框

列表框(ListBox)主要用来选择一组预定的数据,当选项内容在列表区域显示不下时,可通过滚动条浏览列表的其他选项。

组合框(ComboBox)和列表框的功能类似,使用更灵活。实际上,组合框是由一个文本框和下拉列表框组成的。列表框在屏幕占用一个区域,而组合框则占用一行。如列表框或组合框包含多列,则ColumnCount属性为列数,ColumnWidths属性为列的宽度,BoundColumn属性确定被选列表的哪一列作为Value属性的值。另外,IntegralHeight属性可控制列表框的高度是否自动调整,以便其最后一项能被完整显示。

5.4列表框和组合框列表框(ListBox)主要用来选择一185.4列表框和组合框【例Ex_List】列表框选择多个项目练习。

(1)设计界面

(2)设置对象的属性 List1对象的属性: MoverBars=.T. MultiSelect=.T.(3)编写事件代码 *List1对象LostFouce事件 qm=""5.4列表框和组合框【例Ex_List】列表框选择多个项目练195.4列表框和组合框(3)

编写事件代码 *List1对象LostFouce事件 qm="" FORI=1TOTHIS.ListCount IFTHIS.Selected(I) qm=qm+Trim(This.List(I))+"," Endif NextI Messagebox(qm) *“加入->”命令按钮Click事件

QM=This.Parent.Text1.Value If!Empty(QM) No=.T. ForI=1To This.Parent.List1.ListCount IfThis.Parent.List1.List(I)=QM No=.F. Endif NextI IfNo This.Parent.List1.AddItem(QM) Thisform.Refresh Endif Endif*“<-移去”命令按钮Click事件This.Parent.List1.Clear5.4列表框和组合框(3)编写事件代码 If205.4列表框和组合框【例Ex_Edit2】按人员编号增删改基本情况数据。图5.10增删改基本情况数据界面(2)

“职称”组合框: ControlSource =基本情况.职称 RowSourceType=值 RowSource=政工师,工程师,助工

(1)设计表单界面

(2)设置对象属性“文化程度”组合框: ControlSource=基本情况.文化程度 RowSourceType=值 RowSource=研究生,本科,大专,高中,初中 Style=25.4列表框和组合框【例Ex_Edit2】按人员编号增删改基215.5 选项按钮组 选项按钮组是包含选项按钮的容器控件。一般一个选项按钮组可包含多个选项按钮, 其特点是组中仅有一个选项按钮被选中,当前选项按钮被选中,先前被选中的被释放。圆点指示当前被选中选项按钮。选项按钮组中各选项按钮排列方向和位置根据用户需要进行调整。

例如,

选择选项按钮组中选项按钮操作次序如下:

(1)

选选项按钮组;

(2)

按右键,在快捷菜单中选“编辑”;

(3)

选选项按钮后根据用户需要进行调整。

5.5 选项按钮组 选项按钮组是包含选项按钮的容器控件。一225.5 选项按钮组5.5 选项按钮组235.5 选项按钮组【例Ex_Edit2】按人员编号增删改基本情况数据。(1)设计表单界面

(2)

设置对象属性 “性别”选项按钮组(OptionGroup1)有2个选项按钮(Option1,Option2) Option1.Caption=男 Option2.Caption=女

(3)编写代码

图5.11修改增删 改基本情况数据界面(3)

*“性别”选项按钮组(OptionGroup1)的Valid事件 IfThis.Value=1 Replace基本情况.性别With"男" Else Replace基本情况.性别With"女" Endif

5.5 选项按钮组【例Ex_Edit2】按人员编号增删改基本245.6复选框

复选框通常代表独立的逻辑值。复选框由一个方框和标题说明组成。一般情况下,用空框来表示该选项未被选定,当用户选定某一选项时,与该选项对应的方框中会出现打勾符号。

5.6复选框 复选框通常代表独立的逻辑值。复选框由一个方框255.6复选框 复选框三种显示格式如下图所示:

复选框可通过ControlSource属性与表的逻辑型字段进行绑定。例如,上例的婚否字段。 复选框是彼此独立的,在一个表单中用户可以设置多个复选框,在选择时,可以选择其中的一个或多个、甚至全部,也可以一个都不选。

5.6复选框 复选框三种显示格式如下图所示:265.7页框和页

页框(PageFrame)是页面(Page)的容器。页框定义了页面的大小、位置、边框类型和活动页面等总体特性。一个页框可包含若干个页面,而页面本身也是一个容器,一个页面又可包含若干个对象。通过页面,大大展宽了表单的大小,并方便分类组织对象。页框中通过页面标题选择页面,当前被选中的页面就是活动页面。

5.7页框和页 页框(PageFrame)是页面(Pa275.7页框和页图5.13页框页标题不同效果

5.7页框和页图5.13页框页标题不同效果285.7页框和页对于形式4的页框,还可用SpecialEffect属性(0-凸起,1-凹下,2-平面)设置形式,用BorderWidth属性设置边宽,用BorderColor属性设置边颜色。页面通过Caption属性设置标题文本。在每一个页面上可加入不同的对象,只有活动的页面对象被显示。同时还可在页面区域的表单上加入对象,要让其显示出来,必须在属性窗口的对象选择列表框中先选中表单中的对象,然后单击布局工具栏的“置前”图形按钮即可。不管活动页面如何切换,置前操作后的表单对象都会显示。页面上加入和选择对象步骤:先选页框按右键在快捷菜单中选“编辑”选页面选页面上的对象。也可在属性窗口的对象选择列表框中直接选择。页面中对象的完整引用层次如下:THISFORM(或表名).页框名.页名.页面对象名。但是,有时用相对引用更方便。下面说明几个可能的引用情况:

(1)

同一页面的不同对象引用 THIS.PARENT.引用对象名

(2)

不同一页面的对象引用 THIS.PARENT.PARENT.引用对象名

5.7页框和页对于形式4的页框,还可用SpecialEf295.7页框和页【例Ex_Edit3】按人员编号增删改基本情况数据。

(1)设计表单界面

图5.14增删改基本情况数据界面(4)

5.7页框和页【例Ex_Edit3】按人员编号增删改基本情305.7页框和页 上述界面上,使TxtBH、定位、追加、删除等对象放在表单上。

数据环境中两表的关联:拖基本情况关联字段“编号”到工资情况以“编号”作为关键字的索引。(2)

设置对象属性

页框(PageFrame1)属性: PageCount=2 ActivePage=1

页(Page1和Page2)属性: Page1.Caption=基本情况 Page2.Caption=工资情况

图5.15两表的关联数据环境

5.7页框和页 上述界面上,使TxtBH、定位、追加、删315.8表格

表格(Grid)是按行和列操作和显示的容器。一个表格对象包含若干列(Column)对象,每一个列对象包含一个表头(Header)对象和一个或多个列数据操作对象。表头对象用于列的标题的显示内容和格式,数据操作对象是对列数据进行操作时所选用的控件。 一般自动加入一个文本框对象作为列数据操作对象,可加入其他控件对象。一个列中如有一个以上的数据操作对象,则应设置列对象的CurrentControl属性确定当前使用哪一个。

5.8表格 表格(Grid)是按行和列操作和显示的容器325.8表格5.8表格335.8表格

另外列可用InputMask,Format和Alignment等属性控制数据的输入内容、显示格式和对齐方式。进行有条件的格式编排,可使用一组动态格式设置属性。 在表格中不仅能显示字段数据,还可以在表格的列中嵌入文本框、复选框、下拉列表框、微调按钮和其他控件。 用户可以在“表单设计器”中交互地在表格中增删列和在列中交互式添加控件和删除已加入列的控件。

l

表格中列的选择

(1)

选择表格对象按右键在快捷菜单中选“编辑”进入表格内对象的编辑。

(2)

单击表头即选择该列中的表头对象。单击列的非表头区即选择该列对象。

(3)

可设置列的ControlSource为相应的字段名

5.8表格 另外列可用InputMask,Format和A345.8表格 l

表格中列的增删和移动 选择表格中的列,按Del键删除该列。要增加列,仅需改变ColumnCount属性值。要改变列的相对位置,仅需选择列的表头拖动。 l

在列中添加控件

(1)

选择表格中的列。

(2)

选表单控件工具栏中的控件,然后单击列对象,则该控件便加入到该列中。

(3)

设置该列的CurrentControl属性设置为新加入的控件名。此时,在该列中可看到该控件的显示图标。 l

删除列中控件

(1)

在“属性”窗口的“对象”框中选择要移去的控件。

(2)

单击表格或表单标题,按下Delete键即可删除该控件。 除了交互式地向表格列添加控件外,也可以通过编写代码在运行时添加控件。AddObject方法在表格列中添加对象,RemoveObject方法删除表格中的对象。设置AllowHeaderSizing和AllowRowSizing属性为.T.,使运行时可改变表头和行的高度。 表格对象包含三层,表格中对象的完整引用层次如下: 表格上层引用.表格名.列名.表头名 表格上层引用.表格名.列名.操作数据对象名 也可根据上面层次关系进行相对引用。

5.8表格 l

表格中列的增删和移动355.8表格【例Ex_Grid】按姓名和部门过滤编辑基本情况数据。(1)设计表单界面 图5.14姓名和部门过滤编辑表单界面

5.8表格【例Ex_Grid】按姓名和部门过滤编辑基本情况365.8表格

(2)

设置对象属性Grid1.RecordSourceType=别名Grid1.RecordSource=基本情况Grid1.ColumuCount=8Column1.ControlSource=基本情况.编号Column1.Header.Caption=编号……部门组合框属性: Name=cboBM cboBM.RowSourceType=字段cboBM.RowSourceT=部门工资.部门名称姓名文本框属性: Name=txtName确定命令按钮属性: Name=cmdOk(3)

编写代码*“确定”命令按钮Click事件If!Empty(This.Parent.txtName.Value) Setfilterto基本情况.姓名=Trim(This.Parent.txtName.Value) This.Parent.grdJB.Refresh ReturnEndifIf!Empty(This.Parent.cboBM.Value) bm=Trim(This.Parent.cboBM.Value) Select部门工资 LocateFor部门名称=bm bmbh=部门编号 Select基本情况 SetFilterToLeft(基本情况.编号,2)=bmbh This.Parent.grdJB.Refresh ReturnEndif5.8表格(2)

设置对象属性If!Empty(375.8表格1.设置数据源(1)

设置表格记录源 选择表格,选择“属性”窗口的RecordSourceType。如果让VFP打开一个表,则将RecordSourceType属性设置为“0-表”。如果打算在表格中放入打开表的所有字段,则将RecordSourceType属性设置为“-1别名”,选择RecordSource属性,键入作为表格记录源的别名或表名。(2)

设置列数据源 如果在列中显示一个指定字段,那么可以为列单独设置其数据源。先选择将要设置数据源的列,然后选择其“属性”窗口的ControlSource属性。设置其值为相应的字段名。

2.添加记录 将表格的AllowAdNew属性设置为“真”(.T.),便可以允许用户向表格显示的表中添加新的记录。当用户选中了最后一个记录,并且按下了下箭头键时,表中就会添加一个新记录。如使用APPENDBLANK或INSERT命令来添加新的记录,此时应将AllowAdNew属性设置为默认值(“假”)。

5.8表格1.设置数据源385.8表格3.创建一对多表单 表格最常见的用途之一是当表单中的文本框显示父记录数据时,表格显示表的子记录;当用户在父表中浏览记录时,表格子记录显示相应变化。 如果表单的数据环境包含两表之间的一对多关系,那么要在表单中显示这个一对多关系非常容易。 l

具有数据环境的一对多表单

(1)

从“数据环境”中的父表将需要的字段拖动到表单中。

(2)

从“数据环境”中将相关的表拖动到表格中。 l

没有数据环境的一对多表单 (1)

在表单中加入若干个文本框,分别设置文本框的ControlSource属性为主表的相应字段。

(2)

在表单中添加一个表格,将表格的RecordSource属性设置为相关表(子表)的名称。

(3)

设置表格的LinkMaster属性为主表名称。

(4)

设置表格的ChildOrder属性为相关表中索引标识的名称,索引标识和主表中的关系表达式相对应。 将表格的RelationalExpr属性设置为联接相关表和主表的表达式。5.8表格3.创建一对多表单395.8表格4.表格生成器 选择“表格”控件的快捷菜单的“生成器”选项,启动“表格生成器”。在“数据库和表”的列表中选择一个数据库或表,若在其他目录中选择表,单击“…”按钮,选择表并打开。VFP会自动将其所有字段放入表格项的“可用字段”列表中,用户可以选择所需字段添加至“选定字段”列表中。使用双箭头按钮可将所有的可用字段一次性全部移入选定字段的列表中。 在“样式”选项卡中,VFP提供了五种样式,其默认值为“保留当前样式”,另外4种为专业式、标准式、浮雕式、帐务式。当选择其中一项时,左侧的示例会显示出所选择的样式范例。 在“布局”选项卡中,用户可以调整和设置行列。 拖动列标题的右边沿可调整列宽,拖动行的下左边沿可调整行高。在“抬头标题”中可为列设置其Caption(标题)属性。在“控件类型”中可以改变列的控件类型。

5.8表格4.表格生成器405.9图像框和图片框

VFP中有图像框(Image)、形状(Shap)和线条(Line)控件。图像框和图形控件一般用于修饰表单,使界面美观。 图像框不能直接与表中存放图像的字段直接绑定,但可通过文件间接显示。图5.15图像框不同效果

5.9图像框和图片框 VFP中有图像框(Image)、形415.9图像框和图片框 形状控件通过设置其属性可能基本实现表单中BOX和Circle方法完成的功能。

线条控件通过设置其属性可部分实现表单中Line方法完成的功能。

图5.16形状控件不同效果

5.9图像框和图片框 形状控件通过设置其属性可能基本实现表425.10计时器

计时器(Timer)用于处理需用定时进行处理的事件。

计时器常用的事件为Timer事件,计时器常用的方法为Reset。在设计阶段,设置Interval大于0,Enabled为.T.,则当表单启动时计时器便开始计时。若Enabled为.F.,则计时器不会启动。调用Reset方法可使计时器重新从0开始计时。 一般情况下,计时器时间间隔不能太小,否则频繁产生Timer事件会降低系统的运行效率。另外,计时器控件不能自动直接实现定时中断,例如若希望8点产生定时事件,应将8点时间与当前时间DateTime()进行相减换成毫秒数后作为Interval属性值。

5.10计时器 计时器(Timer)用于处理需用定时进行处435.11微调按钮

微调按钮控件(Spinner)可以在一定范围内控制数据的变化,同时又可象文本框一样输入数值数据。

微调按钮常用事件如下:

DownClick事件:在点击向下箭头时产生;

UpClick事件:在点击向上箭头时产生;

InterActiveChange事件:微调按钮数值改变时产生。

5.11微调按钮 微调按钮控件(Spinner)可以在一定445.11微调按钮【例Ex_Spin】显示时间,刷新时间可调。

图5.17定时刷新界面

(2)

设置对象属性 Text1.Value={} Spinner1.SpinnerHighValue=60 &&刷新的时间间隔不大于60秒 Spinner1.SpinnerLowHighValue=1 Spinner1.KeyBoardHighHighValue=60 Spinner1.KeyBoardLowHighValue=1(1)

设计表单界面 设计一个文本框(Text1)显示时间,一个微调按钮(Spinner1)用于控制刷新的时间间隔,一个命令按钮(Command1)用于启动时间显示。

5.11微调按钮【例Ex_Spin】显示时间,刷新时间可调455.11微调按钮

(3)

编写事件代码 *Command1的Click事件 THISFORM.Timer1.Interval=THISFORM.Spinner1.Value*1000 *Timer1的Timer事件 THISFORM.Text1.Value=Time()

一般情况下,微调控件值都是数值型,但是也可以将微调控件和文本框组合使用来微调多种类型的数值。 例如,可以将微调控件和文本框组合起来,使它能够微调一定范围内的日期。先把微调控件的大小作一调整,使不显示它本身的数值框,然后在微调按钮旁边放置一个文本框,设置文本框的Value属性为日期。在微调控件的UpClick和DownClick事件中输入代码,将文本框的值加减一个数值再送到文本框中,以实现用微调控件调整日期

5.11微调按钮 (3)

编写事件代码465.12.1ActiveX控件(OLEControl)

ActiveX控件的功能是向应用程序中添加OLE对象,又称为OLE控件。即把一个对象以链接或嵌入的方式包含在其他应用程序之中。可以通过ActiveX控件在自己的应用程序中使用其他的Windows应用程序,如Excel、Word等。 单击表单控件工具栏中的“OLE容器控件”按钮,并在“表单”窗口中将其拖至所期望的大小后松开,系统选择插入对象。

图5.18插入对象对话框

5.12.1ActiveX控件(OLEControl) 475.12.1ActiveX控件(OLEControl) l

新建 从系统提供的对象进行选择后确定,可以将该OLE对象添加到表单。表单运行时单击该对象即可进入所选对象的操作。` l

由文件创建 在用户选择插入对象的文件名插入该对象。Windows\SYSTEM目录中可能包含ActiveX控件(带有.OCX扩展名的文件)。 l

插入控件列出当前系统所有的ActiveX控件,用户选择后插入该对象。插入ActiveX控件对象可按下列步骤进行:

(1)

首先选“工具”菜单“选项”在显示的下列对话框中选“控件”页选“ActiveX控件”。在列出的ActiveX控件选择本应用系统要使用的控件后确定。

5.12.1ActiveX控件(OLEControl) l485.12.1ActiveX控件(OLEControl)图5.19选项对话框

5.12.1ActiveX控件(OLEControl)图5495.12.1ActiveX控件(OLEControl)(2)

单击“表单控件”中“查看类”(第二个)按钮。系统显示下列菜单:

(3)

“选ActiveX控件”,系统表单控件工具就变为在第1步中所选ActiveX控件图标。

(4)用户按系统提供的基本控件的方法进行操作。

注意:同VisualFoxPr06.0中文版一起发布的很多ActiveX控件是用来与其他应用

程序一起使用的。当把一个控件放在表单上,并按下F1键查看该控件的帮助信息时,所显示的帮助是原来应用程序的,而不是VisualFoxPro6.0中文版的。如果将SysInfo控件放在表单上,按F1键将得不到该控件的帮助信息。

图5.20表单控件

5.12.1ActiveX控件(OLEControl)(2505.12.2ActiveX绑定控件(OLEBoundControl)

ActiveX绑定控件与OLE容器控件一样,可用于向应用程序中添加OLE对象,又称OLE绑定控件。与OLE容器控件不同的是,OLE绑定型控件可绑定在一个通用字段上。绑定型控件是表单或报表上的一种控件,其中的内容与后端的表或查询中的某一字段相关联。单击表单控件工具栏中“ActiveX绑定型控件”按钮,可以在表单中创建一个绑定型OLE控件对象。在创建这个对象后,可以设置对象的ControlSource属性,将它和表中的通用字段链接,然后便可以用这个对象显示字段中的内容。例如,如果将Word文件保存在通用字段中,就可以在表中使用一个绑定型OLE对象显示这些文件的内容。

5.12.2ActiveX绑定控件(OLEBoundCon51第5章控

5.1标签

5.2文本框和编辑框

5.3命令按钮和命令按钮组

5.4列表框和组合框

5.5选项按钮组

5.6复选框

5.7页框和页

5.8表格

5.9图像框和图片框

5.10计时器

5.11微调按钮

5.12Active控件

第5章控件5.1标签525.1标签

标签用于显示文本,一般用于提示信息。显示文本的格式由标签的属性设置。 通过上述属性与标签的其他属性配合一般能够满足提示信息的各种要求。同时还能产 生许多的特殊效果。【例Ex_TextMove】 “欢迎”在屏幕上移动。

(1)

设计表单设置属性 在表单上设计一个 标签,属性如下: Caption=欢迎 FontName=楷体_GB2312 FontSize=48 表5.1标签常用属性

FontBold=.T. ForeColor=255,0,0 Alignment=2

属性功能Caption显示文本内容,最多允许256个字符BackStyle指定背景是否透明。0-透明:可看到标签后的东西1-不透明:背景由标签设置AutoSize指定是否可自动调整标签的大小。WordWrap显示是否可换行。Alignment指定文本在标签中的对齐方式。0-左1-右2-中央5.1标签 标签用于显示文本,一般用于提示信息。显示文本的535.1标签(2)

编写事件代码*标签的Click事件代码

DOWHILE.T. FORI=1TOTHISFORM.WIDTHstep10 THIS.LEFT=I =INKEY(1) &&延时1秒 NEXTI ENDDO用标签产生特殊效果的办法:

(1)

字排多行

在需换行的地方加Chr(13)回车符。例如Caption=”欢”+Chr(13)+”迎”。

如果要改变字的方向,设FontName属性为带@的字体名。

(2)

字从小到大 用一个循环不断改变标签的FontSize,同时调整Top和Left的属性值。 THIS.Top=THISFORM.HEIGHT/2-THIS.FontSize/2

(3)

立体字 设计两个标签,将另一个标签的相对位置略加移动,ForeColor设置不同的颜色,就可产生立体字的效果。

5.1标签(2)编写事件代码545.2文本框和编辑框

文本框(TextBox)用于显示、输入和修改数据。

例如,

将Value属性设置为{},文本框的内容将会自动转变为VFP系统默认的日期格式。

编辑框(EditBox)与文本框的功能类似,也是用于显示、输入和修改数据。其区别是文本框一般为一行,输入的内容放不下会自动向左移动。当文本框的ControlSource与表字段数据源绑定时不能放内容太长的字段或备注字段。而编辑框则为若干行一个区域,当编辑框的ScrollBars属性设为.T.,还可包含滚动条,因此更适合编辑较多文本内容。

另外,IntegralHeight属性可控制编辑框的高度是否自动调整,以便其最后一项能被完整显示。

5.2文本框和编辑框 文本框(TextBox)用于显示、555.2文本框和编辑框文本框与编辑框有时会用到下列事件:When事件:在得到焦点之前发生;GotFocus事件:在得到焦点时发生;Valid事件:在失去焦点之前发生;LostFocus事件:在失去焦点后发生。图5.4用户登录界面

例如,可在When事件代码中保存文本框的原内容,可在Valid事件代码中验证文本框数据输入内容的正确性。Valid事件中的RETURN返回.F.,则焦点不会移开。表单释放时忽略RETURN值的影响。

【例Ex_Login】

在主程序Ex_txt1中先调用表单Ex_Login进行用户登录,如果用户名和口令正确,调用表单Ex_EditGZ执行。(1)设计表单设置属性

(2)设置属性 口令文本框(txtPassWord)属性PasswordChar=*5.2文本框和编辑框文本框与编辑框有时会用到下列事件: 例565.2文本框和编辑框(3)

编写代码 *表单的Activate事件代码 THIS.txtPASSWORD.Enabled=.f. &&输入登录名后才能输口令 THIS.txtNAME.SetFocus &&启动后先输入登录名 *txtNAME文本框KeyPress事件代码 LPARAMETERSnKeyCode,nShiftAltCtrl IFnKeyCode=13.AND.!EMPTY(THIS.VALUE) &&输登录名后回车即进入输口令 THISFORM.txtPASSWORD.Enabled=.t. THISFORM.txtPASSWORD.SetFocus ENDIF *“确定(cmdOK)”按钮的Click事件代码

UNAME=THIS.PARENT.txtNAME.VALUE Yes=.F. DOCASE CASEUname="ZHANG".AND.TRIM(THISFORM.txtPASSWORD.VALUE)=="123456" Yes=.T.CASEUname="WANG".AND.TRIM(THISFORM.txtPASSWORD.VALUE)=="681266" Yes=.T.ENDCASE5.2文本框和编辑框(3)编写代码575.2文本框和编辑框

IfYes Messagebox(“登录成功!”) Else Messagebox(“用户名或口令不对!”) Endif THISFORM.Release CLEAREVENTS *“退出(cmdExit)”按钮的Click事件代码

THISFORM.Release CLEAREVENTS

*Ex_txt1.prg程序代码

PUBLICYES SETDEFAULTTOD:\RY_MIS DOFORMEx_LOGIN READEVENTS IFYES DOFORMEx_EditGZ READEVENTS ENDIF CANCEL5.2文本框和编辑框 IfYes *Ex_txt1585.2文本框和编辑框【例Ex_TextCopy】将左边编辑框中的选择内容复制到右边文本框中。也可在左边编辑框自动选择与右边文本框内容相同的部分。

(1)

设计表单 表单包含下列对象:左边编辑框Edit1,右边文本框Text1,中间一个命令按钮Command1。 图5.5文本框内容复制界面

5.2文本框和编辑框【例Ex_TextCopy】将左边编辑595.2文本框和编辑框

(2)设置对象属性

(3)编写事件代码 *“->(Command1)”按钮的Click事件代码 THIS.Parent.Text1.Value=THIS.Parent.Edit1.SelText *编辑框Edit1的GotFocus事件代码 EditBox::GotFocus

str1=Trim(This.parent.Text1.Value) d=At(str1,This.Value) Ifd>0 This.SelStart=d-1 ` This.SelLength=Len(str1) Else This.SelLength=0 Endif5.2文本框和编辑框(2)设置对象属性 *编辑框E605.2文本框和编辑框 用户可观察和操作:

(1)

启动后左边编辑框的内容全部被选择; (2)

用户可在左边编辑框重选部分内容后,选“->”命令按钮,则选择的内容在右边编辑框中出现;(3)在右边编辑框重输左编辑框中包含的部分内容,单击左编辑框,看与右边编辑框相同的内容是否自动被选择。

5.2文本框和编辑框 用户可观察和操作:615.3 命令按钮和命令按钮组

当表单需多个命令按钮时,可使用命令按钮组(CommandGroup)。命令按钮组中各命令按钮排列方向和位置根据需要进行调整。操作次序如下:

(1)

选命令按钮组;

(2)

按右键,在快捷菜单中选“编辑”;

(3)

选命令按钮后根据用户需要进行调整。

也可在属性窗口的对象选择列表框中直接选择命令按钮组中各命令按钮对象名。

5.3 命令按钮和命令按钮组 当表单需多个命令按钮时,可使625.3 命令按钮和命令按钮组 说明表单中三个命令按钮属性设置情况:

(1)Caption=”确定”,单击该按钮可执行Click事件代码。

(2)Caption=”\<C取消”,Cancel=.T.,单击该按钮、敲C键、按Esc键均可执行Click事件代码。

(3)Picture=”d:\vfp98\fox.bmp”,单击该按钮可执行Click事件代码。

命令按钮中用得最多的事件为Click,命令按钮组中有Click事件。选择命令按钮组中的命令按钮时,如本身包含Click事件代码,则就执行该代码。如本身不包含Click事件代码,则执行命令按钮组Click事件代码。图5.6命令按钮标题的三种情况

5.3 命令按钮和命令按钮组 说明表单中三个命令按钮属性设置635.3 命令按钮和命令按钮组【例Ex_EditGZ_Gcmd】将Ex_EditGZ表单(第二章)中的命令按钮换成命令按钮组,对比使用方法。(1)

修改界面5.3 命令按钮和命令按钮组【例Ex_EditGZ_Gcmd645.3 命令按钮和命令按钮组*CommandGroup1的Click事件代码sel=This.ValueDOCASECASEsel=1 GOTOPCASEsel=2 IF!BOF() SKIP-1 ENDIFCASEsel=3 IF!EOF() SKIP ENDIFCASEsel=4 GOBOTTOMENDCASETHISFORM.REFRESH*退出(Command5)的Click事件代码THISFORM.Release5.3 命令按钮和命令按钮组*CommandGroup1的655.3 命令按钮和命令按钮组【例Ex_Edit1】按人员编号增删改基本情况数据。(1)

设计表单界面 新建表单打开数据环境将RY数据库中的工资情况表添加到数据环境中拖数据环境的工资情况表的字段到表单中。 建立文本框txtBH用于输入定位人员的编号,建立定位(cmdLOCATE)、追加和删除三个命令按钮。 图5.8增删改基本情况数据界面(1)

5.3 命令按钮和命令按钮组【例Ex_Edit1】按人员编号665.3 命令按钮和命令按钮组 (2)

设置对象属性 设置TxtBH的属性InputMask=99999。 字段文本框的ControlSource属性如下: txt编号.ControlSource=基本情况.编号 txt姓名.ControlSource=基本情况.姓名 txt出生时间.ControlSource=基本情况.出生时间

(3)

编写代码 *“定位”命令按钮的Click代码 bh=Trim(This.Parent.txtBH.Value) jlh=recno() LocateFor编号=bh IfEof() Gojlh =MessageBox(“没有找到该编号!”) Else Thisform.Refresh Endif*“追加”命令按钮的Click代码 AppendBlank Thisform.Refresh *“删除”命令按钮的Click代码 yn=Messagebox(“是否要删 除?",4+32)**未曾提过 Ifyn=6 Delete IfEof() Gotop Else Skip Endif Thisform.Refresh Endif5.3 命令按钮和命令按钮组 (2)设置对象属性*“追675.3 命令按钮和命令按钮组(4)

可进一步考虑的问题§

在TxtBH文本框中输回车也进行记录定位*TxtBH文本框的VALID事件代码IF!EMPTY(THIS.VALUE) THIS.PARENT.cmdLOCATE.Click&&打回车启动定位事件代码ELSE RETURN.F. &&TxtBH文本框为空不能离开ENDIF5.3 命令按钮和命令按钮组(4)可进一步考虑的问题685.4列表框和组合框

列表框(ListBox)主要用来选择一组预定的数据,当选项内容在列表区域显示不下时,可通过滚动条浏览列表的其他选项。

组合框(ComboBox)和列表框的功能类似,使用更灵活。实际上,组合框是由一个文本框和下拉列表框组成的。列表框在屏幕占用一个区域,而组合框则占用一行。如列表框或组合框包含多列,则ColumnCount属性为列数,ColumnWidths属性为列的宽度,BoundColumn属性确定被选列表的哪一列作为Value属性的值。另外,IntegralHeight属性可控制列表框的高度是否自动调整,以便其最后一项能被完整显示。

5.4列表框和组合框列表框(ListBox)主要用来选择一695.4列表框和组合框【例Ex_List】列表框选择多个项目练习。

(1)设计界面

(2)设置对象的属性 List1对象的属性: MoverBars=.T. MultiSelect=.T.(3)编写事件代码 *List1对象LostFouce事件 qm=""5.4列表框和组合框【例Ex_List】列表框选择多个项目练705.4列表框和组合框(3)

编写事件代码 *List1对象LostFouce事件 qm="" FORI=1TOTHIS.ListCount IFTHIS.Selected(I) qm=qm+Trim(This.List(I))+"," Endif NextI Messagebox(qm) *“加入->”命令按钮Click事件

QM=This.Parent.Text1.Value If!Empty(QM) No=.T. ForI=1To This.Parent.List1.ListCount IfThis.Parent.List1.List(I)=QM No=.F. Endif NextI IfNo This.Parent.List1.AddItem(QM) Thisform.Refresh Endif Endif*“<-移去”命令按钮Click事件This.Parent.List1.Clear5.4列表框和组合框(3)编写事件代码 If715.4列表框和组合框【例Ex_Edit2】按人员编号增删改基本情况数据。图5.10增删改基本情况数据界面(2)

“职称”组合框: ControlSource =基本情况.职称 RowSourceType=值 RowSource=政工师,工程师,助工

(1)设计表单界面

(2)设置对象属性“文化程度”组合框: ControlSource=基本情况.文化程度 RowSourceType=值 RowSource=研究生,本科,大专,高中,初中 Style=25.4列表框和组合框【例Ex_Edit2】按人员编号增删改基725.5 选项按钮组 选项按钮组是包含选项按钮的容器控件。一般一个选项按钮组可包含多个选项按钮, 其特点是组中仅有一个选项按钮被选中,当前选项按钮被选中,先前被选中的被释放。圆点指示当前被选中选项按钮。选项按钮组中各选项按钮排列方向和位置根据用户需要进行调整。

例如,

选择选项按钮组中选项按钮操作次序如下:

(1)

选选项按钮组;

(2)

按右键,在快捷菜单中选“编辑”;

(3)

选选项按钮后根据用户需要进行调整。

5.5 选项按钮组 选项按钮组是包含选项按钮的容器控件。一735.5 选项按钮组5.5 选项按钮组745.5 选项按钮组【例Ex_Edit2】按人员编号增删改基本情况数据。(1)设计表单界面

(2)

设置对象属性 “性别”选项按钮组(OptionGroup1)有2个选项按钮(Option1,Option2) Option1.Caption=男 Option2.Caption=女

(3)编写代码

图5.11修改增删 改基本情况数据界面(3)

*“性别”选项按钮组(OptionGroup1)的Valid事件 IfThis.Value=1 Replace基本情况.性别With"男" Else Replace基本情况.性别With"女" Endif

5.5 选项按钮组【例Ex_Edit2】按人员编号增删改基本755.6复选框

复选框通常代表独立的逻辑值。复选框由一个方框和标题说明组成。一般情况下,用空框来表示该选项未被选定,当用户选定某一选项时,与该选项对应的方框中会出现打勾符号。

5.6复选框 复选框通常代表独立的逻辑值。复选框由一个方框765.6复选框 复选框三种显示格式如下图所示:

复选框可通过ControlSource属性与表的逻辑型字段进行绑定。例如,上例的婚否字段。 复选框是彼此独立的,在一个表单中用户可以设置多个复选框,在选择时,可以选择其中的一个或多个、甚至全部,也可以一个都不选。

5.6复选框 复选框三种显示格式如下图所示:775.7页框和页

页框(PageFrame)是页面(Page)的容器。页框定义了页面的大小、位置、边框类型和活动页面等总体特性。一个页框可包含若干个页面,而页面本身也是一个容器,一个页面又可包含若干个对象。通过页面,大大展宽了表单的大小,并方便分类组织对象。页框中通过页面标题选择页面,当前被选中的页面就是活动页面。

5.7页框和页 页框(PageFrame)是页面(Pa785.7页框和页图5.13页框页标题不同效果

5.7页框和页图5.13页框页标题不同效果795.7页框和页对于形式4的页框,还可用SpecialEffect属性(0-凸起,1-凹下,2-平面)设置形式,用BorderWidth属性设置边宽,用BorderColor属性设置边颜色。页面通过Caption属性设置标题文本。在每一个页面上可加入不同的对象,只有活动的页面对象被显示。同时还可在页面区域的表单上加入对象,要让其显示出来,必须在属性窗口的对象选择列表框中先选中表单中的对象,然后单击布局工具栏的“置前”图形按钮即可。不管活动页面如何切换,置前操作后的表单对象都会显示。页面上加入和选择对象步骤:先选页框按右键在快捷菜单中选“编辑”选页面选页面上的对象。也可在属性窗口的对象选择列表框中直接选择。页面中对象的完整引用层次如下:THISFORM(或表名).页框名.页名.页面对象名。但是,有时用相对引用更方便。下面说明几个可能的引用情况:

(1)

同一页面的不同对象引用 THIS.PARENT.引用对象名

(2)

不同一页面的对象引用 THIS.PARENT.PARENT.引用对象名

5.7页框和页对于形式4的页框,还可用SpecialEf805.7页框和页【例Ex_Edit3】按人员编号增删改基本情况数据。

(1)设计表单界面

图5.14增删改基本情况数据界面(4)

5.7页框和页【例Ex_Edit3】按人员编号增删改基本情815.7页框和页 上述界面上,使TxtBH、定位、追加、删除等对象放在表单上。

数据环境中两表的关联:拖基本情况关联字段“编号”到工资情况以“编号”作为关键字的索引。(2)

设置对象属性

页框(PageFrame1)属性: PageCount=2 ActivePage=1

页(Page1和Page2)属性: Page1.Caption=基本情况 Page2.Caption=工资情况

图5.15两表的关联数据环境

5.7页框和页 上述界面上,使TxtBH、定位、追加、删825.8表格

表格(Grid)是按行和列操作和显示的容器。一个表格对象包含若干列(Column)对象,每一个列对象包含一个表头(Header)对象和一个或多个列数据操作对象。表头对象用于列的标题的显示内容和格式,数据操作对象是对列数据进行操作时所选用的控件。 一般自动加入一个文本框对象作为列数据操作对象,可加入其他控件对象。一个列中如有一个以上的数据操作对象,则应设置列对象的CurrentControl属性确定当前使用哪一个。

5.8表格 表格(Grid)是按行和列操作和显示的容器835.8表格5.8表格845.8表格

另外列可用InputMask,Format和Alignment等属性控制数据的输入内容、显示格式和对齐方式。进行有条件的格式编排,可使用一组动态格式设置属性。 在表格中不仅能显示字段数据,还可以在表格的列中嵌入文本框、复选框、下拉列表框、微调按钮和其他控件。 用户可以在“表单设计器”中交互地在表格中增删列和在列中交互式添加控件和删除已加入列的控件。

l

表格中列的选择

(1)

选择表格对象按右键在快捷菜单中选“编辑”进入表格内对象的编辑。

(2)

单击表头即选择该列中的表头对象。单击列的非表头区即选择该列对象。

(3)

可设置列的ControlSource为相应的字段名

5.8表格 另外列可用InputMask,Format和A855.8表格 l

表格中列的增删和移动 选择表格中的列,按Del键删除该列。要增加列,仅需改变ColumnCount属性值。要改变列的相对位置,仅需选择列的表头拖动。 l

在列中添加控件

(1)

选择表格中的列。

(2)

选表单控件工具栏中的控件,然后单击列对象,则该控件便加入到该列中。

(3)

设置该列的CurrentControl属性设置为新加入的控件名。此时,在该列中可看到该控件的显示图标。 l

删除列中控件

(1)

在“属性”窗口的“对象”框中选择要移去的控件。

(2)

单击表格或表单标题,按下Delete键即可删除该控件。 除了交互式地向表格列添加控件外,也可以通过编写代码在运行时添加控件。AddObject方法在表格列中添加对象,RemoveObject方法删除表格中的对象。设置AllowHeaderSizing和AllowRowSizing属性为.T.,使运行时可改变表头和行的高度。 表格对象包含三层,表格中对象的完整引用层次如下: 表格上层引用.表

温馨提示

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

评论

0/150

提交评论