0

フォーム ( document ) を 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

サブ終了

フォームの Initialize メソッドでコーディングすることにしました...

しかし、それは機能せず、次のようなメッセージが表示されます: "ドキュメントコマンドは利用できません" . 助けてください、感謝します、ありがとう。

4

1 に答える 1

3

一般的な経験則として、Initializeイベントはフォームで使用しないでください。この理由の1つは、Initializeが実行されるまでに、フォームが必ずしもすべてのロードを完了していないことです。

このコードは、QueryOpenイベントに配置する必要があります。

もう1つのベストプラクティスは、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 に答える