VSTO Word 2007:如何以编程方式将控件移动到现有控件的范围之上/之下?

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

  •  03-07-2019
  •  | 
  •  

我正在使用VSTO开发Word 2007文档模板。该文档有几个RichTextContentControls,并且有一个带有treeview控件的可见ActionsPane,其中treeview的节点是RichTextContentControls的名称。

用户可以通过将节点拖放到树视图中的新位置来重新排序节点。删除节点后,应根据新节点位置重新排序相应的RichTextContentControl。

我能够找到新控件应该在其上方移动的控件的范围。现在我只需要找到一种简单的方法......将控件移动到这个新位置。

如何将控件移动到范围之上/之下?

有帮助吗?

解决方案

我使用RichTextControl中的书签将其从动作窗格中的两个按钮移动到另一个上方/下方。像这样向上移动“bm”的地方下面等于所选书签:

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

对于树视图,它会更复杂,但我可以看到您希望将所有的richtext控件编入索引(可能使用“tag”属性),然后在树视图中移动它们时,使用索引来添加/减去其他索引,然后使用“重新定位”和“重新定位”。循环中的方法多次将其传递给它的新位置。然后,您可以循环并重新创建索引。在循环开始时 Application.ScreenUpdating = False 并在循环结束时将其设置回 = True 也会停止闪烁。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top