我正在使用VSTO开发Word 2007文档模板。该文档有几个RichTextContentControls,并且有一个带有treeview控件的可见ActionsPane,其中treeview的节点是RichTextContentControls的名称。
用户可以通过将节点拖放到树视图中的新位置来重新排序节点。删除节点后,应根据新节点位置重新排序相应的RichTextContentControl。
我能够找到新控件应该在其上方移动的控件的范围。现在我只需要找到一种简单的方法......将控件移动到这个新位置。
如何将控件移动到范围之上/之下?
答案 0 :(得分:4)
我使用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
也会停止闪烁。