# DrawingCollection.Add Method

> Inserts a new drawing in a Text Control document.

- **Product:** TX Text Control .NET for Windows Forms
- **Section:** Reference
- **Kind:** Method
- **Introduced:** 23.0
- **Namespace:** `TXTextControl.DataVisualization`
- **Package:** `TXTextControl.TextControl.WinForms.SDK` (assembly `TXTextControl.dll`, from the private NuGet feed or Text Control Offline Packages)
- **.NET Framework:** reference `TXTextControl.dll` from the setup
- **Path:** TX Text Control .NET for Windows Forms > Reference > TXTextControl.DataVisualization > DrawingCollection.Add Method
- **2627 words**
- **Web URL:** https://docs.textcontrol.com/tx-text-control-dotnet-winforms/reference/txtextcontrol-datavisualization/drawingcollection/add-method/
- **LLMs URL:** https://docs.textcontrol.com/tx-text-control-dotnet-winforms/reference/txtextcontrol-datavisualization/drawingcollection/add-method/llms.txt
- **LLMs-Full URL:** https://docs.textcontrol.com/tx-text-control-dotnet-winforms/reference/txtextcontrol-datavisualization/drawingcollection/add-method/llms-full.txt

---

### Description

Inserts a new drawing in a Text Control document.

### Syntax

#### Add(DrawingFrame, int)

Inserts a drawing inline, which means that it is treated in the text like a single character.

```csharp
public bool Add(DrawingFrame drawingFrame, int textPosition);
```

```vbnet
Public Function Add(drawingFrame As DrawingFrame, textPosition As Integer) As Boolean
```

| Parameter | Description |
|---|---|
| drawingFrame | Specifies the drawing and its frame to add. |
| textPosition | Specifies the text position at which the drawing is to be inserted. If -1 is specified, the drawing is inserted at the current input position. |

#### Add(DrawingFrame, HorizontalAlignment, int, FrameInsertionMode)

Inserts a drawing, which is anchored to the specified text position. It has the specified horizontal alignment relative to the paragraph into which it is inserted and the textflow is given through the insertionMode parameter. An anchored drawing is moved with the text. FrameInsertionMode.FixedOnPage and FrameInsertionMode.AsCharacter cannot be specified with this overload.

```csharp
public bool Add(DrawingFrame drawingFrame, HorizontalAlignment alignment, int textPosition, FrameInsertionMode insertionMode);
```

```vbnet
Public Function Add(drawingFrame As DrawingFrame, alignment As HorizontalAlignment, textPosition As Integer, insertionMode As FrameInsertionMode) As Boolean
```

| Parameter | Description |
|---|---|
| drawingFrame | Specifies the drawing and its frame to add. |
| alignment | Specifies the drawing's horizontal alignment. It can be one of the [HorizontalAlignment](https://docs.textcontrol.com/tx-text-control-dotnet-winforms/reference/txtextcontrol/horizontalalignment/enumeration/llms-full.txt) values:  \| Value \| Meaning \| \| Left \| The drawing is left aligned, relative to the paragraph to which it is anchored. \| \| Right \| The drawing is right aligned, relative to the paragraph to which it is anchored. \| \| Centered \| The drawing is centered, relative to the paragraph to which it is anchored. \| \| Justify \| This value is not supported for the alignment of drawings. \| |
|---|

| textPosition | Specifies the text position at which the drawing is to be inserted. If -1 is specified, the drawing is inserted at the current input position. |
|---|---|

| insertionMode | Specifies how the text flow is handled. It can be one of the values of the [FrameInsertionMode](https://docs.textcontrol.com/tx-text-control-dotnet-winforms/reference/txtextcontrol/frameinsertionmode/enumeration/llms-full.txt) enumeration. |

#### Add(DrawingFrame, Point, int, FrameInsertionMode)

Inserts a drawing, which is anchored to the specified text position. The specified location is relative to the paragraph into which it is inserted and the textflow is given through the insertionMode parameter. An anchored drawing is moved with the text. FrameInsertionMode.FixedOnPage and FrameInsertionMode.AsCharacter cannot be specified with this overload.

```csharp
public bool Add(DrawingFrame drawingFrame, Point location, int textPosition, FrameInsertionMode insertionMode);
```

```vbnet
Public Function Add(drawingFrame As DrawingFrame, location As Point, textPosition As Integer, insertionMode As FrameInsertionMode) As Boolean
```

| Parameter | Description |
| drawingFrame | Specifies the drawing and its frame to add. |
| location | Specifies the location, in twips, at which the drawing is to be inserted. |
| textPosition | Specifies the text position at which the drawing is to be inserted. If -1 is specified, the drawing is inserted at the current input position. |
| insertionMode | Specifies how the text flow is handled. It can be one of the values of the [FrameInsertionMode](https://docs.textcontrol.com/tx-text-control-dotnet-winforms/reference/txtextcontrol/frameinsertionmode/enumeration/llms-full.txt) enumeration. |

#### Add(DrawingFrame, int, Point, FrameInsertionMode)

Inserts a drawing, which has a fixed geometrical position in the document. This position is specified through a page number and a location on this page and the textflow is given through the insertionMode parameter. FrameInsertionMode.MoveWithText and FrameInsertionMode.AsCharacter cannot be specified with this overload.

```csharp
public bool Add(DrawingFrame drawingFrame, int pageNumber, Point location, FrameInsertionMode insertionMode);
```

```vbnet
Public Function Add(drawingFrame As DrawingFrame, pageNumber As Integer, location As Point, insertionMode As FrameInsertionMode) As Boolean
```

| Parameter | Description |
|---|---|
| drawingFrame | Specifies the drawing and its frame to add. |
| pageNumber | Specifies the number of a page beginning with 1 where the drawing is located. |
| location | Specifies the location, in twips, at which the drawing is to be inserted. |
| insertionMode | Specifies how the text flow is handled. It can be one of the values of the [FrameInsertionMode](https://docs.textcontrol.com/tx-text-control-dotnet-winforms/reference/txtextcontrol/frameinsertionmode/enumeration/llms-full.txt) enumeration. |

#### Add(DrawingFrame, Point, FrameInsertionMode)

Inserts a drawing, which has a fixed geometrical position in the document. This position is specified relative to the complete document and the textflow is given through the insertionMode parameter. FrameInsertionMode.MoveWithText and FrameInsertionMode.AsCharacter cannot be specified with this overload.

```csharp
public bool Add(DrawingFrame drawingFrame, Point location, FrameInsertionMode insertionMode);
```

```vbnet
Public Function Add(drawingFrame As DrawingFrame, location As Point, insertionMode As FrameInsertionMode) As Boolean
```

| Parameter | Description |
|---|---|
| drawingFrame | Specifies the drawing and its frame to add. |
| location | Specifies the location, in twips, at which the drawing is to be inserted. |
| insertionMode | Specifies how the text flow is handled. It can be one of the values of the [FrameInsertionMode](https://docs.textcontrol.com/tx-text-control-dotnet-winforms/reference/txtextcontrol/frameinsertionmode/enumeration/llms-full.txt) enumeration. |

#### Add(DrawingFrame, FrameInsertionMode)

Inserts a drawing with the built-in mouse interface. The drawing's size is determined through the end-user. A cross cursor indicates where the drawing can be inserted. Changing the document or pressing the ESC key aborts the insertion process.

```csharp
public bool Add(DrawingFrame drawingFrame, FrameInsertionMode insertionMode);
```

```vbnet
Public Function Add(drawingFrame As DrawingFrame, insertionMode As FrameInsertionMode) As Boolean
```

| Parameter | Description |
|---|---|
| drawingFrame | Specifies the drawing and its frame to add. |
| insertionMode | Specifies how the text flow is handled. It can be one of the values of the [FrameInsertionMode](https://docs.textcontrol.com/tx-text-control-dotnet-winforms/reference/txtextcontrol/frameinsertionmode/enumeration/llms-full.txt) enumeration. |

### Return Value

The return value is true, if the drawing could be added. Otherwise, it is false.

### Examples

The following example adds an item to the drawing collection.

```csharp
if (!drawingCollection.Add(new TXTextControl.DataVisualization.DrawingFrame("Approved"), -1))
{
    throw new InvalidOperationException("The item could not be inserted.");
}
```

```vbnet
If Not drawingCollection.Add(New TXTextControl.DataVisualization.DrawingFrame("Approved"), -1) Then
    Throw New InvalidOperationException("The item could not be inserted.")
End If
```

---

## Nearby

- **Previous:** [DrawingCollection Class](https://docs.textcontrol.com/tx-text-control-dotnet-winforms/reference/txtextcontrol-datavisualization/drawingcollection/llms-full.txt)
- **Next:** [DrawingCollection.CopyTo Method](https://docs.textcontrol.com/tx-text-control-dotnet-winforms/reference/txtextcontrol-datavisualization/drawingcollection/copyto-method/llms-full.txt)
