How WordApplication inserts elementsEach of the elements listed in the document tree structure inherit from the Element class, which provides most of the methods for inserting new elements into a document. WordApplication will allow you to call any Insert method on almost any type of element, but the behavior of that method will change depending on what type of element the method is called on and what type of element the method is inserting
Example: Calling InsertCharacterRunAfter on a Section
This example shows the behavior of WordWriter when inserting an element two levels deeper than the current element.
To achieve the most predictable behavior, it is recommended practice to call a Create or Insert method on an object appropriate to what is being inserted.
Here is an example Word document before running either of the code samples above:
List of Insert Behaviors
The following table lists some common examples of how WordWriter behaves when a Create or Insert method is called on different elements.
Each column represents the following:
Parent element: Element on which InsertXBefore or InsertXAfter is called.
Element to be inserted: Type of element which is being inserted. Use the appropriate InsertXBefore or InsertXAfter for this type.
InsertXBefore Behavior: What the InsertXBefore method does in this case.
InsertXAfter Behavior: What the InsertXAfter method does in this case.
|Parent Element||Element to be inserted||InsertXBefore Behavior||InsertXAfter Behavior|
|Document||Section||New Section is inserted before existing Sections.|
New [[Section] is inserted after existing Sections.
|Document||Paragraph, List, or Table|
|Document||CharacterRun, InlineImage, Hyperlink, or MergeField|
|Section||CharacterRun , InlineImage, Hyperlink, or MergeField||Element is inserted in the first element ( Paragraph , List , or Table ) of this Section of the Document before any existing elements in that first element.||Element is inserted in the last element ( Paragraph , List , or Table ) of this Section of the Document before any existing elements in that last element.|
|List||CharacterRun , InlineImage, Hyperlink, or MergeField|
|Table||Paragraph||Paragraph is inserted in the first TableCell of the current Table before any existing elements in that TableCell.||Paragraph is inserted after the Table.|
|Table||List||List is inserted before the Table. There is currently an issue with this behavior.||List is inserted after the Table and appears as a TableCell.|
|Table||CharacterRun , InlineImage, Hyperlink, or MergeField|