看实例学VFP.doc
看实例学VFP:制作只能从顶层表单调用的系统主菜单时间:2009-03-02来源:编程入门网 老马 我们知道正常的VFP菜单都是显示在主屏幕(_screen)中的,但如果要使用顶层表单来做软件的主界面,_screen是要屏蔽掉的。这就产生了一个问题:_screen没有了,软件菜单该往哪里放呢?没有关系,可以使用只能从顶层表单中调用的菜单来解决这个问题,另外这种菜单的调用处是在顶层表单的init事件中,而不是在主程序中。本例来制作一个只能从顶层表单调用的系统主菜单MAIN.MPR,下一课我们将会给出使用顶层表单制作软件主界面的示例,并会在该示例中调用这个菜单。该菜单包括“数据操作”和“退出”两个一级菜单,“数据操作”菜单项又包含“浏览数据”、“添加记录”、“修改数据”和“删除数据”四个下级菜单项,如下图:“菜单设计器”的使用请参考:vfp菜单的使用,此菜单调用的四个表单分别在以前介绍过的实例“看实例学VFP:对表中记录进行定位与查找操作”、“看实例学VFP:向数据表中添加记录并验证输入数据是否合法”、“看实例学VFP:对数据表中记录进行修改”和“看实例学VFP:删除数据表中的记录”中有介绍,具体制作方法这里不再多述。这里把这种菜单的制作步骤大致的说一下:一、打开“菜单设计器”,首先建立两个一级菜单项“数据操作”和“退出”,在“菜单设计器”中“数据操作”对应的“结果”一栏选“子菜单”,“退出”对应的“结果”一栏选“过程”,如下图:二、在上图中,单击“退出”右侧的“编辑”按钮,输入以下过程代码:msg=messagebox("您确实要退出本系统吗?",4+32+1024,"系统提示")if msg=6 close database quitendif三、然后单击选中“数据操作”菜单项名称,单击右侧的“编辑”按钮,为“数据操作”菜单项建立“浏览数据”、“添加记录”、“修改数据”和“删除数据”四个下级菜单项,这四个下级菜单项的“结果”一栏都选“命令”,并在“结果”一栏右侧的“选项”一栏中依次输入以下四条命令,如下图所示:do form 对表中记录进行定位与查找操作.scxdo form 向数据表中添加记录并验证输入数据是否合法.scxdo form 对数据表中记录进行修改.scxdo form 删除数据表中的记录.scx四、在“菜单设计器”打开的状态下,单击VFP系统菜单的“显示”下的“常规选项”,在出现的“常规选项”对话框中,选中“顶层表单”复选框,并选中“替换”单选框,如下图:五、将菜单保存为main.mnx,单击VFP系统菜单中“菜单”下的“生成”命令,生成MAIN.MPR。本例代码在Win2003+VFP6.0环境下调试通过。看实例学VFP:用顶层表单制作软件主界面时间:2009-03-04来源:编程入门网 老马 本文来制作一个顶层表单用作系统的主界面,运行界面见本文末尾,完成本例后即可以运行此表单并执行菜单里所指定的那些操作了。当然这仅仅是一个主表单而已,还需要一个系统用户登录验证表单来调用这个表单,以及主程序及连编、发布等操作,在后面的例子中会介绍这些。本例制作步骤如下:一、新建表单,将其caption属性值设置为“编程入门网网址管理系统”,width属性值设置为600,height属性值设置为400,AutoCenter属性值设置为.t.,并将表单保存为“主表单.scx”。二、将表单的ShowWindow属性值设置为“2-作为顶层表单”,这一步很重要,首先因为看实例学VFP:制作只能从顶层表单调用的系统主菜单这一例中的菜单已经设置为只能从顶层表单中调用了;其次,使用顶层表单作软件主界面需要在主程序中用_screen.Visible=.F.语句将主屏幕隐藏,如果表单不设置为顶层表单的话,执行的结果是连表单也一起隐藏了。三、设置表单的picture属性为你工作目录里的一幅图片,我用的是“风景.JPG”,你也可以选一个自己喜欢的。四、添加事件代码(一).表单的init事件代码:do MAIN.MPR with this,.t. &&调用主菜单(二).表单的unload事件:close allclear eventsquit五、运行“主表单.scx”,界面见下图:此时就可以执行菜单里所指定的操作了,比如我单击了“数据操作”下的“浏览数据”,界面如下:本例代码在Win2003+VFP6.0环境下调试通过。看实例学VFP:制作系统登录表单时间:2009-03-05来源:编程入门网 老马 本例制作一个简单的登录表单,系统运行时首先启动此登录表单,运行界面如下图:输入正确的用户名及密码才会启动主表单,如下图;若连续3次输入错误的用户名及密码则会自动退出。制作步骤如下:一、新建表单,将表单的caption属性值设置为“系统登录”,ShowWindow属性值设置为“2-作为顶层表单”,width属性值设置为295,height属性值设置为100,AutoCenter属性值设置为,并将表单保存为“系统登录.scx”。二、继续设置该表单的属性:将表单的MaxButton及MinButton属性值均设置为.f.,这样就屏蔽掉了表单的最大化和最小化按钮,成为只有一个关闭按钮的对话框。三、向表单添加两个label控件,将它们的caption属性值分别设置为“用户名”和“密 码”。四、向表单添加两个文本框控件,并将其中的Text2的PasswordChar属性值设置为“*”。五、向表单添加两个命令按钮command1和command2,将它们的caption属性值分别设置为“确定”和“退出”。六、适当调整各控件在表单上的位置及大小,调整后的表单设计器如下图:七、右击表单空白处,选“数据环境”命令,将“管理”表添加到表单的数据环境中。八、添加事件代码:(一)表单的init事件代码:public cn &&声明全局变量,用于计算登录次数cn=0(二) 表单的unload事件:close allclear eventsquit(三)接收用户名的文本框Text1的KeyPress事件代码:LPARAMETERS nKeyCode, nShiftAltCtrlif nKeyCode=13.and.!empty(this.value) &&输入用户名后按回车即进入输密码 thisform.Text2.enabled=.t. thisform.Text2.setfocusendif(四)“确定”按钮command1的click事件代码:cname=alltrim(thisform.text1.value)ppassword=alltrim(thisform.text2.value)cn=cn+1if cn=3 thisform.releaseendifset exact ongo toplocate for 操作员姓名=cname.and.密码=ppasswordif eof() messagebox('用户名或密码错误,请重新输入!','系统提示') return else thisform.visible=.f. do form 主表单 &&调入主界面表单endifset exact off &&设置字符非精确比较(五)“退出”按钮command2的click事件代码:thisform.release九、运行“系统登录.scx”即可,在看实例学VFP:示例数据库一文中已经给出了“管理.dbf”的结构,其中预置的两个操作员的用户名及密码分别是:用户名密码张三12345678李四aaaaaaaa本例代码在Win2003+VFP6.0环境下调试通过。看实例学VFP:主程序及连编综合示例时间:2009-03-07来源:编程入门网 老马 本文给出一个简单的主程序并将我们做的这个简单的系统连编成为可执行文件。本实例采用顶层表单作为软件的主界面,运行连编后的exe会首先出现要求用户名和密码的登录表单,如下图:连续3次输入错误的用户名及密码会自动退出,输入正确的用户名及密码后,登录表单隐藏并且启动主表单,如下图:本例要点:因为使用顶层表单做主界面,就需要在主程序中加一句_screen.visible=.f.把主屏幕屏蔽掉;主表单是顶层表单,则主表单菜单各模块所调用的表单的ShowWindow属性值都应设置为“1-在顶层表单中”;系统初始化部分加了read events,则在涉及到系统退出的表单的unload或QueryUnload事件中应有一句clear events,而主表单菜单各模块所调用的表单则不用。制作步骤:一、因为涉及到连编可执行文件和系统发布,所以我们首先建立一个项目文件,保存为“项目1.pjx”。二、在项目管理器中,选中“全部”或“代码”下的“程序”,单击项目管理器上的“新建”按钮建立一个程序文件,并输入以下代码:cc=sys(16)start=at(":",cc)-1cend=rat("",cc,1)set default to (substr(cc,start,cend-start+1)_screen.visible=.f.set talk offset sysmenu todo form 系统登录Read Events将该程序文件保存为“main.prg”,保存完程序文件的项目管理器如下图:三、按照以前介绍过的实例“看实例学VFP:对表中记录进行定位与查找操作”、“看实例学VFP:向数据表中添加记录并验证输入数据是否合法”、“看实例学VFP:对数据表中记录进行修改”、“看实例学VFP:删除数据表中的记录”、“看实例学VFP:制作系统登录表单”和“看实例学VFP:用顶层表单制作软件主界面”,在项目管理器中分别建立“对表中记录进行定位与查找操作.scx”、“向数据表中添加记录并验证输入数据是否合法.scx”、“对数据表中记录进行修改.scx”和“删除数据表中的记录.scx”、“系统登录.scx”、“主表单.scx”这6个表单,按照“看实例学VFP:制作只能从顶层表单调用的系统主菜单”一例的方法建立主菜单main.mpr。如果这些实例都已经做过了,可以将这些实例的文件复制到项目文件所在的目录,并在项目管理器中把它们添加到所属的类别里。四、设置主文件:在项目管理器中右击main.prg,在快捷菜单中为“设置主文件”命令打上对号,如下图:五、在项目管理器中选中main.prg,单击项目管理器右下角的“连编”命令,在弹出的“连编选项”对话框中按下图进行设置:六、设置完毕后单击“确定”,在弹出的“另存为”对话框中将连编后的应用程序名命名为“编程入门网网址管理系统.exe”,再单击该对话框中的“保存”按钮即可完成连编。七、程序的发布(制作安装盘)请参考:软件的编译及生成安装盘:本例代码在Win2003+VFP6.0环境下调试通过。看实例学VFP:用sql命令创建表时间:2009-03-10来源:编程入门网 老马 本文是一个在vfp中使用sql命令创建表的实例。用sql命令创建表结构的格式如下:create table 表名 (字段名1 类型(宽度,小数位),字段名2 类型(宽度,小数位),) 在看实例学VFP:示例数据库一文中已经给出了“网站信息表”的表结构如下表:字段名类型宽度编号字符型5网站名称字符型12网站网址字符型24那么我要创建相同的表结构并且表名为“网站信息表2“的sql命令如下:create table 网站信息表2 (编号 c(5),网站名称 c(12),网站网址 c(24)本例主要操作是在表单的init事件中完成的,在该事件中首先使用sql命令创建出“网站信息表2”的表结构,然后把“网站信息表”的所有记录追加到“网站信息表2”中,并把“网站信息表2”设为表格控件grid1的数据源,这样表格显示的就是“网站信息表2”的数据,此时你打开工作目录就可以看到这个“网站信息表2”;最后在退出时在表单的unload事件中将我们创建的“网站信息表2”删除。界面如下:制作步骤如下:一、新建表单,并将其caption属性值设置为“编程入门网-用sql命令创建表”,width和height属性值分别设置为375和250,AutoCenter属性值设置为.t.,将表单保存为“用sql命令创建表.scx”。二、向表单上添加一个表格控件grid1,并将其RecordSourceType属性值设为“1-别名”,ReadOnly属性值设为.t.。三、添加事件代码:1.表单的init事件代码:create table 网站信息表2 (编号 c(5),网站名称 c(12),网站网址 c(24)append from 网站信息表go topthis.grid1.recordsource="网站信息表2"2.表单的unload事件代码:close alldelete file 网站信息表2.dbfif file("网站信息表2.BAK") delete file 网站信息表2.BAKendif四、运行“用sql命令创建表.scx”。本例代码在Win2003+VFP6.0环境下调试通过。看实例学VFP:用sql命令修改表结构时间:2009-03-12来源:编程入门网 老马 在看实例学VFP:用sql语句修改数据表记录一文中介绍过用sql语句修改表记录的值,实际vfp中也可以用sql语言中的Alter语句动态的修改表结构。虽然可以实现这样的操作,但是我觉得尽可能还是不要在程序中动态修改表结构,因为这样有可能会造成程序的不稳定以及其它的意外情况。vfp中对表结构的操作主要是增加字段、修改字段、重命名字段和删除字段这四项,sql中修改表结构的语句是Alter语句,那么和这四项操作相对应的Alter语句格式可以总结如下:增加字段:alter talbe 表名 add 字段名 类型(宽度,小数位 )修改字段:alter table 表名 alter column 字段名 类型(宽度,小数位 )重命名字段:alter table 表名 rename column 字段名 TO 新字段名删除字段:alter table 表名 drop column 字段名这个Alter语句看起来比较麻烦,因此本文设计了这样的一个例子来演示上述的这些对表结构的操作,运行时如下图:本例在表单init时首先从“人员信息表”中查询出“编号”、“姓名”、“性别”及“基本工资”四个字段的值并将查询结果输出为“人员信息表2.dbf”,然后把它设为表格的数据源,接下来我们修改表结构的操作就在这个表上进行。表单上的四个命令按钮的click事件代码中分别对应了alter语句的四个格式的应用,其中:1.“增加字段”按钮的click事件:在“人员信息表2”中增加一个字段名为“行号”、数据类型为数值型且小数位为0的字段,然后用循环语句把各条记录的行号添加上去;2.“修改字段”按钮的click事件:“人员信息表2”中“基本工资”这个字段的类型原来是货币型,在此事件中将它更改为数值型且小数位为零;3.“重命名字段”按钮的click事件:将“人员信息表2”中的“姓名”这个字段的字段名更改为“尊姓大名”;4.“删除字段”按钮的click事件:将“编号”字段删除。制作过程很简单:一.新建表单,将其caption属性值设置为“编程入门网-用sql命令修改表结构”,AutoCenter属性值设置为.t.,保存为“用sql命令修改表结构.scx”。向表单上添加四个命令按钮,caption属性依次设置为“增加字段”、“修改字段”、“重命名字段”及“删除字段”;在命令按钮下方添加一个表格控件,name属性值使用默认的grid1,recordsourcetype属性值也使用默认的“1-别名”。二.添加事件代码:1.表单的init事件代码:select 编号,姓名,性别,基本工资 from 人员信息表 into table 人员信息表2go topthis.grid1.recordsource="人员信息表2"2.“增加字段”按钮的click事件代码:thisform.grid1.recordsource=""local s,c as integers=reccount()c=thisform.grid1.columncount+1ALTER TABLE 人员信息表2 ADD 行号 N(2,0)for i=1 to s go i replace 行号 with recno()endforgo topthisform.grid1.columncount=cthisform.grid1.Columns(thisform.grid1.columncount).Header1.caption="行号"thisform.grid1.recordsource="人员信息表2"thisform.grid1.refreshthis.enabled=.f.3.“修改字段”按钮的click事件代码:thisform.grid1.recordsource=""alter table 人员信息表2 alter column 基本工资 N(4,0)thisform.grid1.recordsource="人员信息表2"thisform.grid1.refreshthis.enabled=.f.4.“重命名字段”按钮的click事件代码:thisform.grid1.recordsource=""thisform.grid1.ColumnCount=-1alter table 人员信息表2 rename column 姓名 TO 尊姓大名thisform.grid1.recordsource="人员信息表2"thisform.grid1.refreshthis.enabled=.f.5.“删除字段”按钮的click事件代码:thisform.grid1.recordsource=""thisform.grid1.ColumnCount=-1alter table 人员信息表2 drop column 编号thisform.grid1.recordsource="人员信息表2"thisform.grid1.refreshthis.enabled=.f.6.表单的unload事件代码:close alldelete file 人员信息表2.dbfif file("人员信息表2.BAK") delete file 人员信息表2.BAKendif三.运行“用sql命令修改表结构.scx”。本例代码在Win2003+VFP6.0环境下调试通过。看实例学VFP:Timer控件实例-动画时间:2009-03-14来源:编程入门网 老马 在vfp基础教程-计时器(timer)中已经对计时器控件的属性及方法等做了介绍,这个控件的应用重点是它的Interval属性和timer事件。本文来补充一个例子,运行时在计时器控件的timer事件中控制label控件的位置形成动画效果,如下图:本例通过在timer事件中操作标签控件的top属性来实现标签上下移动的动画。如果要制作左右移动的动画,原理是一样的,在timer事件中操作标签控件的left属性即可。本例制作过程:一、新建表单,width属性值设为290,height属性值设为160,caption属性值设为“编程入门网-用timer实现动画”,AutoCenter属性值设为.t.,保存为“动画.scx”。二、向表单上添加一个label控件,caption属性值设为“编程入门网”,fontsize属性值设为12,forecolor属性值设为“255,0,0”。三、向表单上添加一个timer控件,interval属性值设为50。四、添加事件代码:timer控件的timer事件代码:if thisform.label1.top<0 &&成立说明label已经移出了表单的上边界,则重置它的位置 thisform.label1.top=300 thisform.label1.top=thisform.label1.top-5 &&向上移动5像素else thisform.label1.top=thisform.label1.top-5 endif五、运行“动画.scx”。本例代码在Win2003+VFP6.0环境下调试通过。看实例学VFP:用列表框控件做个“开始菜单”时间:2009-03-16来源:编程入门网 老马 What is “开始菜单”?这应该是一句废话。因为只要是使用Windows系统的,都知道单击了任务栏左侧的“开始”按钮就会出现这个菜单,并且可能每天都会使用这个菜单。那么用vfp编写的软件能否不使用菜单,而是把软件菜单的功能项都放到这样一种类似于Windows系统的“开始菜单”里呢?可以的,只要你喜欢。今天我们用列表框控件做个简单的“开始菜单”,运行时单击了表单的“开始”按钮后如下图:此时就可以执行这个“开始菜单”中的各个功能项了,比如单击了“显示背景”后表单变成下面的这个样子:另外在上个例子看实例学VFP:Timer控件实例-动画中标签是上下运动的,本例中的动画是左右运动的。在vfp基础教程-列表框控件(listbox)一文中已经给出了列表框控件的常用属性和方法,本例不再重复这些内容了,只给出例子的制作过程和代码。制作步骤:一、新建表单,将其width和height属性值分别设置为290和250,保存为“表单1.scx”。二、向表单添加控件并设置属性:1、在表单左下角添加一个命令按钮,将其caption属性值设置为“开始”。2、在命令按钮的上方添加一个列表框控件List1,用鼠标拖动将它的宽度调成和命令按钮一样宽,height属性值设置为85。3、添加一个标签控件label1,并将其caption属性值设为“编程入门网”,forecolor属性值设为“255,0,0”,AutoSize属性值设为.t.,FontSize属性值设为12,FontBold属性值设为.t.。4、添加一个timer控件,interval属性值采用默认的0。以上步骤完成后的表单设计器如下图:三、添加事件代码:1、表单的Activate事件代码:this.list1.additem("显示动画")this.list1.additem("关闭动画")this.list1.additem("显示背景")this.list1.additem("去掉背景")this.list1.additem("退出系统")2、表单的MouseMove事件代码:LPARAMETERS nButton, nShift, nXCoord, nYCoordthisform.list1.visible=.f.3.表单的init事件代码:cc=sys(16)start=at(":",cc)-1cend=rat("",cc,1)set default to (substr(cc,start,cend-start+1)thisform.list1.visible=.f.thisform.label1.visible=.f.4、命令按钮“开始”的click事件代码:thisform.list1.visible=.t.5、列表框控件List1的click事件代码:do case this.listindex case this.selected(5) &&退出系统 thisform.release case this.selected(4) &&去掉背景 thisform.picture="" this.visible=.f. case this.selected(3) &&显示背景 thisform.picture="风景.jpg" this.visible=.f. case this.selected(2) &&关闭动画 thisform.timer1.interval=0 thisform.label1.visible=.f. this.visible=.f. case this.selected(1) &&显示动画 thisform.timer1.interval=40 thisform.label1.backstyle=0 thisform.label1.visible=.t. this.visible=.f.endcase6、计时器控件timer1的timer事件代码:if thisform.label1.left+thisform.label1.width>0 thisform.label1.left=thisform.label1.left-3else thisform.label1.left=thisform.widthendif四、运行“表单1.scx”。看实例学VFP:用编辑框控件做个“摸奖机”时间:2009-03-18来源:编程入门网 老马 编辑框控件与文本框控件的功能是相似的,实际上你可以把它看作是可以展示多行数据、数据多时可以有滚动条的文本框,它的属性和事件也大多与文本框相似。在vfp基础教程-编辑框控件(editbox)一文中已经给出了一个例子,今天我们用编辑框再来做一个趣味小实例:摸奖机。程序运行界面如下:这个例子并没有什么复杂的东西,主要是在命令按钮的click事件中对文本框输入的值进行判断,根据所输入的选择值将其对应的奖品显示到编辑框中。制作步骤如下:一、新建表单,将其caption属性值设置为“编程入门网-制作一个摸奖机”,AutoCenter属性值设置为.t.,width和height属性值分别设置为280和150,并将其保存为“摸奖机.scx”。二、添加控件并设置属性:1.向表单上添加一个label控件label1,并将其caption属性值设置为“请输入您的选择(1-4)”。2.向表单上添加一个文本框控件Text1,将其InputMask属性值设置为9,value属性值设置为0。3.向表单上添加一个命令按钮Command1,并将其caption属性值设置为“您获得的奖品是”。4.向表单上添加一个编辑框控件Edit1。三、按上图所示的程序运行界面,适当调整各控件的大小及在表单上的位置。四、添加事件代码:命令按钮command1的click事件代码:do case case thisform.text1.value=1 thisform.edit1.value="您的奖品是手机一部." case thisform.text1.value=2 thisform.edit1.value="您的奖品是10000元." case thisform.text1.value=3 thisform.edit1.value="您的奖品是学习机一部." case thisform.text1.value=4 thisform.edit1.value="您的奖品是彩电一台." otherwise thisform.edit1.value="谢谢您的参与."endcase五、运行“摸奖机.scx”。看实例学VFP:超级链接控件的使用时间:2009-03-21来源:编程入门网 老马 超级链接控件(HyperLink)不象文本框、命令按钮等控件那样常用,一般是在制作软件的“关于”表单的时候能够用到它。这个控件的最常用的方法是NavigateTo(指定要打开的网址),本文来做一个关于这个控件的例子,运行时如下图:在上图中:单击了蓝色标签文字会直接打开“编程入门网”;单击了“关于本站”按钮,则会使用api函数调用Windows系统的“关于”窗体(用到了FOXTOOLS.FLL库,在随文的源码中有)。单击了“关于本站”下方的链接,则可打开对应的网站。另外本例中的超级链接控件是在表单init时用addobject函数添加上去的,列表框中的列表项也是在此事件中添加的。当然也可以在设计时在表单设计器中进行设置,如果要这样做的话,就得把表单init事件中对应的代码去掉。制作步骤如下:一、新建表单,将其Autocenter属性值设置为.t.,保存为“表单1.scx”。二、向表单添加一个标签控件label1,caption属性值设为“编程入门网”,fontbold属性值设为.t.,fontsize属性值设为12,forcolor属性值设置为“0,0,255”(rgb颜色)。三、向表单上添加一个命令按钮控件command1,caption属性值设为“关于本站”。四、向表单上添加一个标签控件label2,caption属性值设为“访问指定网站”。五、向表单添加一个列表框控件list1,采用其默认属性值。六、适当调整控件、大小及在表单上的位置,表单设计器如下图:七、添加事件代码:1、表单的load事件代码:declare integer ShellAbout in Shell32.dll long hwnd,string szApp,string szOtherStuff,;long hIcon &&声明API函数set library to "foxtools.fll" &&载入vfp的Fll库2、表单的init事件代码:this.AddObject("Hyperlink1","HyperLink")&&这是添加,若以后要移去它可用RemoveObject("Hyperlink1")this.list1.additem("MSDN")this.list1.additem("CSDN")this.list1.additem("Yesky")this.list1.additem("小小鸟") 3、“编程入门网”标签label1的click事件代码:thisform.HyperLink1.NavigateTo("")4、“关于本站”命令按钮command1的click事件代码:hwnd=_WhToHwnd(_Wontop()=shellAbout(hWnd,"编程入门网","欢迎访问网站:",0)5、列表框控件list1的click事件代码:do case this.listindex case this.selected(1) &&访问微软MSDN主页 thisform.Hyperlink1.NavigateTo("") case this.selected(2) &&访问CSDN网站 thisform.Hyperlink1.NavigateTo("") case this.selected(3) &&访问天极 thisform.Hyperlink1.NavigateTo("") case this.selected(4) &&访问编程入门网 thisform.Hyperlink1.NavigateTo("")endcase八、运行“表单1.scx”。看实例学VFP:commondialog控件时间:2009-03-27来源:编程入门网 老马 VB中可以使用commondialog控件得到“打开”、“另存为”等标准对话框以及文件路径和文件名,在vfp中同样可以使用这个控件。该控件运行时不可见,是一个ActiveX控件。该控件常用的事件有showopen和showsave,其中showopen用于得到"打开"对话框,showsave用于得到“另存为”对话框;该控件常用的属性如下:filename:返回所选中文件的文件名(含路径的文件名)。filetitle:返回文件名(不含路径的纯文件名)。filter属性:指定“打开”或“保存”对话框的“文件类型”列表框的列表项内容,如下图:本文是一个关于commondialog控件的小例子,运行时如下图:在上图中,单击“选择表”按钮会出现“打开”对话框,可以在工作目录中选择一个表打开并将其中的数据显示到表格控件中;单击“保存文件”按钮会出现“另存为”对话框,可以将当前表文件保存到一个指定位置。制作步骤如下:一、新建表单,将其AutoCenter属性值设置为.t.,保存为“表单1.scx”。二、向表单上添加两个命令按钮command1command2,将它们的caption属性值依次设置为“选择表”和“保存文件”。三、向表单上添加commondialog控件:由于commondialog控件是ActiveX控件,所以在使用前需要先注册一下,然后才能在“表单控件工具栏”中看到并使用它。步骤如下:1、单击VFP系统菜单中“工具”“选项”,在弹出的“选项”对话框中选择“控件”选项卡,在该选项卡中选中“ActiveX控件”单选框,在下方的列表中选中“Microsoft Common Dialog Control”,然后单击“设为默认值”,