VSTO Word 2007: Wie kann ein Steuerelement programmgesteuert über / unter dem Bereich einer bestehenden Steuerung bewegt werden?

StackOverflow https://stackoverflow.com/questions/803743

  •  03-07-2019
  •  | 
  •  

Frage

Ich entwickle eine Word 2007-Dokumentvorlage mit VSTO. Das Dokument hat mehrere RichTextContentControls und es gibt eine sichtbare Action mit einem TreeView-Steuerelement, wo die Knoten der Baumansicht die Namen der RichTextContentControls sind.

Die Benutzer können neu anordnen Knoten durch Ziehen / Knoten an neue Positionen in der Baumansicht fallen. Als Knoten abgeworfen werden, sollten die entsprechenden RichTextContentControls nach dem neuen Knoten Standorte neu geordnet werden.

Ich kann den Bereich der Steuerung finden, dass die neue Steuer soll oben bewegt werden. Jetzt brauche ich nur einen Weg finden, einfach zu ... die Steuerung auf diese neue Position verschieben.

Wie kann ich bewegen, um eine Kontrolle über / unter einem Bereich?

War es hilfreich?

Lösung

Ich tat dies mit einem Lesezeichen innerhalb eines RichTextControl es gerade oben zu bewegen / unter einem anderen von zwei Schaltflächen in dem Aktionsbereich. Wie dies für die Bewegung nach oben, wo „bm“ unter dem ausgewählten Lesezeichen gleich:

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

Für eine Baumansicht, wäre es komplizierter sein, aber ich konnte sehen, dass Sie alle Ihre rich Kontrollen wollen würden indiziert werden (vielleicht die „Tag“ Eigenschaft), und dann, wie Sie sie in Ihrer Baumansicht bewegen, verwenden der Index aus anderen Indizes zu addieren / subtrahieren und dann die „Umzug“ Methode in einer Schleife verwenden, dass viele Male, es zu bekommen, um es neue Lage. Dann können Sie Schleife und den Index neu erstellen. Application.ScreenUpdating = False zu Beginn der Schleifen und setzen Sie ihn am Ende der Schleife zu = True zurück würde auch das Flimmern stoppen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top