当前位置: 首页 > 编程语言 > vfp > 正文

看实例学VFP:commondialog控件

时间:2009-03-27 www.bianceng.cn 老马

VB中可以使用commondialog控件得到“打开”、“另存为”等标准对话框以及文件路径和文件名,在vfp中同样可以使用这个控件。该控件运行时不可见,是一个ActiveX控件。该控件常用的事件有showopen和showsave,其中showopen用于得到"打开"对话框,showsave用于得到“另存为”对话框;该控件常用的属性如下:

filename:返回所选中文件的文件名(含路径的文件名)。

filetitle:返回文件名(不含路径的纯文件名)。

filter属性:指定“打开”或“保存”对话框的“文件类型”列表框的列表项内容,如下图:

本文是一个关于commondialog控件的小例子,运行时如下图:

在上图中,单击“选择表”按钮会出现“打开”对话框,可以在工作目录中选择一个表打开并将其中的数据显示到表格控件中;单击“保存文件”按钮会出现“另存为”对话框,可以将当前表文件保存到一个指定位置。

制作步骤如下:

一、新建表单,将其AutoCenter属性值设置为.t.,保存为“表单1.scx”。

二、向表单上添加两个命令按钮command1~command2,将它们的caption属性值依次设置为“选择表”和“保存文件”。

三、向表单上添加commondialog控件:

由于commondialog控件是ActiveX控件,所以在使用前需要先注册一下,然后才能在“表单控件工具栏”中看到并使用它。步骤如下:

1、单击VFP系统菜单中“工具”→“选项”,在弹出的“选项”对话框中选择“控件”选项卡,在该选项卡中选中“ActiveX控件”单选框,在下方的列表中选中“Microsoft Common Dialog Control”,然后单击“设为默认值”,再“确定”,如下图:

2、单击“表单控件工具栏”上的“查看类”,在出现的下拉菜单中选择“ActiveX控件”,如下图:

3、此时就可以在“表单控件工具栏”中看到这个控件了,如下图,

然后就可以象添加其它控件一样向表单上添加一个commondialog控件了,刚添加上去的控件的name属性值默认为“Olecontrol1”,为了书写代码的方便,我们把它的name属性值修改为“commondialog1”。

四、在表单的下方添加一个表格控件grid1,属性值均采用默认的。适当调整各控件在表单上的位置,如下图:

五、添加事件代码:

1、表单的init事件代码:thisform.grid1.visible=.f.

2、表单的unload事件代码:use

3、“选择表”命令按钮(command1)的click事件代码:

private mp,fn
mp="" &&记录打开文件路径的变量
thisform.commondialog1.fileName=""
thisform.commondialog1.Filter="数据表(DBF)|*.dbf" &&定义Commondialong打开的类型
thisform.commondialog1.showopen &&打开"打开"对话框
mp=thisform.commondialog1.fileName &&取得数据表所在路径
fn=thisform.commondialog1.filetitle &&不含路径的纯文件名
if empty(mp)=.f. &&判断路径是否为空
    use &mp &&打开这个数据表
    fn=left(fn,len(fn)-4) &&去掉路径字符串最后四位".dbf"
    thisform.grid1.recordsource=fn
    thisform.grid1.visible=.t.
    thisform.refresh
endif

4、“保存文件”命令按钮(command2)的click事件代码:

private mypath
mypath=""
thisform.commondialog1.fileName=""
thisform.commondialog1.Filter="数据表(DBF)|*.dbf" &&定义Commondialong保存的类型
thisform.commondialog1.showsave &&打开"保存"对话框
mypath=thisform.commondialog1.fileName &&取得数据表所在路径
if empty(mypath)=.f.
    copy to alltrim(mypath)
    messagebox("文件保存成功!")
endif

六、运行“表单1.scx”。

本例代码在Win2003+VFP6.0环境下调试通过。

查看全套“菜鸟也学VFP”教程