0

我想在 EditMode = false; 因此,当打开表单时,我希望在按下放置文档的按钮之前不能修改任何字段等。在 EditMode = true。

我的代码是这样的:

Sub Initialize Dim ws As New NotesUIWorkspace Dim uidoc As NotesUIDocument Dim doc As NotesDocument Set uidoc = ws.CurrentDocument 'Set doc = uidoc.Document

uidoc.EditMode = False

结束子

我选择在 Form 的 Initialize 方法中编写代码...

但它不起作用,它给了我这样的消息:“文档命令不可用”。请帮助,我将不胜感激,谢谢。

4

1 回答 1

3

作为一般经验法则,Initialize 事件不应在表单中使用。其原因之一是在 Initialize 运行时表单未必已完成所有内容的加载。

此代码应放置在 QueryOpen 事件中。

另一个最佳实践是不使用 NotesWorkspace.CurrentDocument 来获取当前表单的句柄,而是使用传递给 QueryOpen 事件的 Source 参数。NotesWorkspace.CurrentDocument 应该只用于代理和其他表单尚未在上下文中的地方。在当前文档已经在上下文中时调用 NotesWorkspace.CurrentDocument 可能会导致 Notes 出现奇怪的行为。

这是一些应该工作的代码:

Sub Queryopen(Source As Notesuidocument, Mode As Integer, Isnewdoc As Variant, Continue As Variant)
    If (Not Source Is Nothing) Then Source.EditMode = False
End Sub
于 2012-08-22T18:03:17.717 回答