VSTO وورد 2007: كيف يمكن التحكم برمجيا يتم نقلها فوق / تحت مجموعة من عنصر تحكم موجود؟

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

  •  03-07-2019
  •  | 
  •  

سؤال

وأنا تطوير قالب مستند Word 2007 مع VSTO. وثيقة لديها العديد RichTextContentControls وهناك ActionsPane مرئية مع جهاز تحكم عن تريفيف حيث العقد من تريفيف هي أسماء RichTextContentControls.

يمكن للمستخدمين إعادة ترتيب العقد عن طريق سحب / إسقاط العقد إلى مواقع جديدة في 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