BeforeOpenFile

在图片或文件管理窗口,单击"打开"按钮的时候执行:

e参数属性:

DataTable: 触发事件的DataTable
DataRow: 触发事件的DataRow
DataCol: 触发事件的DataCol
FileName: 返回或设置即将打开的文件。
Cancel: 逻辑型,是否取消此次打开操作。
AutoUpdate: 是否自动更新附件,尽在使用FTP管理远程文件的时候,才有效。

示例一

如果希望用户打开文件后,只能查看,不能修改。
实际上这种要求是做不到的,因为我们没有办法控制众多的第三方软件。
但是我们可以拦截用户要打开的文件,复制一份这个文件,让用户打开的是这个复制的文件,而不是源文件,这样即使用户无意中修改并保存了文件,也不会影响到原文件。
参考代码:

If e.DataCol.Name = "列名" Then
    Dim fn As String = "C:\Temp\" & FileSys.GetName(e.Filename) '新的文件名和路径
   
FileSys.CopyFile(e.FileName, fn) '复制文件
   
e.FileName = fn '指定要打开的文件为新复制的文件
End
If

示例二

如果希望用户打开文件后,不能进行其它操作,直到关闭这个文件。
可以参考下面的代码:

If e.DataCol.Name = "档案" Then
    Dim Proc As New Process '定义一个新的Process
    Proc.File = e.FileName '指定要打开的文件
    proc.WaitForClose = True '等到关闭进程才能进行后续操作
    Proc.Start() '打开文件
    e.Cancel = True '取消系统默认的打开文件操作,因为前面已经编码打开了

End
If

 


本页地址:http://www.foxtable.com/webhelp/topics/2637.htm