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