2009-04-29 9 views
3

私はVSTOでWord 2007ドキュメントテンプレートを開発しています。ドキュメントにはいくつかのRichTextContentControlがあり、ツリービューのノードがRichTextContentControlsの名前であるツリービューコントロールを持つ可視のActionsPaneがあります。VSTO Word 2007:コントロールをプログラム上で既存のコントロールの範囲の上または下に移動するにはどうすればよいですか?

ユーザーは、ノードをツリービュー内の新しい場所にドラッグ・アンド・ドロップすることで、ノードを並べ替えることができます。ノードが削除されると、対応するRichTextContentControlsは、新しいノードの場所に従って並べ替えられます。

新しいコントロールが上に移動するはずのコントロールの範囲を見つけることができます。今、私は単にコントロールをこの新しい場所に移動する方法を見つける必要があります。

コントロールを範囲の上または下に移動するにはどうすればよいですか?

答えて

4

RichTextControl内のブックマークを使用して、これをアクションペインの2つのボタンの上下に移動するだけです。このように、以下の「BM」は、選択したブックマーク等しいまで移動するためのツリービューについて

Dim pageBookmark As Microsoft.Office.Tools.Word.Bookmark 
pageBookmark = Globals.ThisDocument.Controls.Item(bm) 
pageBookmark.Range.Relocate(Direction:=Word.WdRelocate.wdRelocateUp) 

を、それがより複雑になりますが、私はすべてのあなたのリッチテキストコントロールがインデックスを作成することにしたいだろうと見ることができました(多分「タグ」プロパティを使用します)、次にツリービューでそれらを移動するときに、インデックスを使用して他のインデックスを追加/減算し、ループ内で「再配置」メソッドを何度も使用して新しい場所に移動します。次に、索引をループして再作成できます。ループの開始時にApplication.ScreenUpdating = Falseを設定し、ループの最後に= Trueに戻すと、フリッカーも停止します。

+0

+1トッド、あなたは天才です! – Sabuncu

関連する問題