2016-10-19 7 views
1

これは機能します。その後、ターゲットにはソースの内容が含まれています。uidoc.copyが正常に動作しない

Call uidoc.GotoField("source")   
Call uidoc.SelectAll 
Call uidoc.Copy      
Call uidoc.GotoField("target")  
Call uidoc.Paste      

ここでは、ユーザーを関与させたいと思います。彼は2つの単語(名前)を「ソース」フィールドにマウスカーソルでマークします。私の意図は、このマークされたテキストを別のフィールド 'target'に転送することです。

注記ドキュメントによれば、uidoc.copyは編集モードでマークされたテキストを取ります。 元のドキュメントの抜粋:

ドキュメント内の現在の選択をクリップボードにコピーします。 現在の選択は、テキストや グラフィックスなど、ドキュメント上の何でもかまいません。

これは機能しません。エラーが発生します。エラーメッセージ:このタイプのフィールドにテキストのみを貼り付けることができます:

Call uidoc.Copy      
Call uidoc.GotoField("target")  
Call uidoc.Paste      

すべてのフィールドはプレーンテキストです。

誰でもこの問題を解決する別のアイデアはありますか?

答えて

0

だからどこですか? uidoc.Copyはドキュメント全体だけをコピーするか、何もコピーしません(カーソルの位置に依存します)。両方の「内容」はテキストフィールドに貼り付けることができません。

ただし、次のようにしてください。この文脈では、コピー+貼り付けは使用しないでください。編集モードではありません。

使用Backend-操作して、あなたは右のフォーカス/エディットモードに依存しません。

Call uidoc.Document.ReplaceItemValue("Target" , uidoc.Document.GetItemValue("Source")) 

またはより短い(usind短縮表記):

uidoc.Document.Target = uidoc.Document.Source 
+0

私はコンテンツ全体を転送したくありません。その場合、あなたは正しいです、そして、あなたが説明したように私はそれをしたでしょう。 –

+0

ユーザーは、テキストの一部に印を付けることによって黙っています。私はそれをより良い方法で説明するために質問を編集しました。 –

2

私がいることが分かりました実際にはボタンがフォーカスを自分自身に変更します。それがその行動の理由です。

可能な解決策は、フォーカスをそのまま残すアクションを使用することです。

関連する問題