VSTO Word 2007 : 기존 제어 범위 위/이하의 컨트롤을 어떻게 프로그래밍 방식으로 이동할 수 있습니까?

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

  •  03-07-2019
  •  | 
  •  

문제

VSTO와 함께 Word 2007 문서 템플릿을 개발하고 있습니다. 이 문서에는 몇 가지 RichTextContentControl이 있으며 TreeView의 노드가 RichTextContentControls의 이름 인 TreeView 컨트롤이있는 가시 ActionS -vane이 있습니다.

사용자는 TreeView의 새 위치로 노드를 드래그/드롭하여 노드를 다시 주문할 수 있습니다. 노드가 삭제되면 해당 RichTextContentControls는 새 노드 위치에 따라 다시 주문해야합니다.

새로운 제어가 위에서 이동 해야하는 제어의 범위를 찾을 수 있습니다. 이제 단순히 ...이 새로운 위치로 컨트롤을 이동하는 방법 만 찾아야합니다.

컨트롤을 범위 위/이하로 어떻게 이동할 수 있습니까?

도움이 되었습니까?

해결책

RichTextControl 내부의 북마크를 사용하여 액션 창의 두 버튼에서 다른 하나 아래로 이동하기 위해이 작업을 수행했습니다. 아래의 "bm"이 선택한 책갈피와 같은 곳에서 위로 올라가는 것과 마찬가지로.

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

트리 뷰의 경우 더 복잡하지만 모든 Richtext 컨트롤이 인덱싱되기를 원한다는 것을 알 수 있습니다 ( "태그"속성을 사용할 수 있음). 그런 다음 트리 뷰에서 이동할 때 인덱스를 사용하십시오. 다른 인덱스에서 추가/빼기를 한 다음 루프에서 "재배치"메소드를 사용하여 새로운 위치에 도착하십시오. 그런 다음 인덱스를 반복하고 재현 할 수 있습니다. Application.ScreenUpdating = False 루프의 시작시 = True 루프가 끝나면 깜박임도 멈출 것입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top