
# IExternalForm interface

This `IExternalForm` interface object has low level methods such as resizing and displaying the form.

```csharp
public interface IExternalForm
```

**Namespace:** DXP · **Assembly:** Altium.SDK.Interfaces

**Derived:** [IDocumentOptionsView](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/IDocumentOptionsView.md), [INavigatorView](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/INavigatorView.md), [IRevisionsView](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/IRevisionsView.md), [IServerView](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/IServerView.md), [IToolchainManagerGenericOptionDlg](https://altiumdeveloper.github.io/ad-sdk-docs/reference/embedded/IToolchainManagerGenericOptionDlg.md), [IInstrumentView](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/IInstrumentView.md), [ILibraryReportExternalSettings](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/ILibraryReportExternalSettings.md)

## Remarks

For example VCL technology is not compatible with MS C++ toolkit.

Therefore to work with windows in the Altium Designer platform, you use the `IExternalForm` interface to have access to windows and manipulate them.

## Methods

| Method | Returns | Description |
| --- | --- | --- |
| [FocusFirstTabStop](#focusfirsttabstop) | `void` |  |
| [GetBounds](#getbounds) | `void` | This method retrieves the four bounds (left, top, width and height) of the form. |
| [GetCaption](#getcaption) | `string` |  |
| [GetHandle](#gethandle) | `uint` |  |
| [Hide](#hide) | `void` | This Hide method hides the form from view in Altium Designer. |
| [ParentWindowCreated](#parentwindowcreated) | `void` |  |
| [ParentWindowDestroyed](#parentwindowdestroyed) | `void` |  |
| [SetBounds](#setbounds) | `void` | This method sets the bounds of the external form. |
| [SetFocus](#setfocus) | `void` |  |
| [SetParentWindow](#setparentwindow) | `void` |  |
| [Show](#show) | `void` | This method displays the hidden form. |

### FocusFirstTabStop

*No description yet.*

```csharp
void FocusFirstTabStop();
```

**Returns:** nothing (`void`)

**See also:** [IClient](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/IClient.md)

**Examples:** [Extension_ModifySchWireColor](https://github.com/AltiumDeveloper/ad-sdk-examples/blob/5b144f54740a53ec578b3b6c3f902b831e0b1144/Extension_ModifySchWireColor/Source%20Code/Commands.cs#L64)

### GetBounds

This method retrieves the four bounds (left, top, width and height) of the form.

```csharp
void GetBounds(ref int argLeft, ref int argTop, ref int argWidth, ref int argHeight);
```

| Parameter | Type | Passing |
| --- | --- | --- |
| `argLeft` | `int` | ref |
| `argTop` | `int` | ref |
| `argWidth` | `int` | ref |
| `argHeight` | `int` | ref |

**Returns:** nothing (`void`)

**See also:** [IClient](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/IClient.md)

### GetCaption

*No description yet.*

```csharp
string GetCaption();
```

**Returns:** `string`

### GetHandle

*No description yet.*

```csharp
uint GetHandle();
```

**Returns:** `uint`

### Hide

This Hide method hides the form from view in Altium Designer.

```csharp
void Hide();
```

**Returns:** nothing (`void`)

**See also:** [IClient](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/IClient.md)

### ParentWindowCreated

*No description yet.*

```csharp
void ParentWindowCreated();
```

**Returns:** nothing (`void`)

**See also:** [IClient](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/IClient.md)

### ParentWindowDestroyed

*No description yet.*

```csharp
void ParentWindowDestroyed();
```

**Returns:** nothing (`void`)

**See also:** [IClient](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/IClient.md)

### SetBounds

This method sets the bounds of the external form.

```csharp
void SetBounds(int argLeft, int argTop, int argWidth, int argHeight);
```

| Parameter | Type | Passing |
| --- | --- | --- |
| `argLeft` | `int` | value |
| `argTop` | `int` | value |
| `argWidth` | `int` | value |
| `argHeight` | `int` | value |

**Returns:** nothing (`void`)

**See also:** [IClient](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/IClient.md)

### SetFocus

*No description yet.*

```csharp
void SetFocus();
```

**Returns:** nothing (`void`)

**See also:** [IClient](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/IClient.md)

**Examples:** [Extension_ModifySchWireColor](https://github.com/AltiumDeveloper/ad-sdk-examples/blob/5b144f54740a53ec578b3b6c3f902b831e0b1144/Extension_ModifySchWireColor/Source%20Code/Commands.cs#L62)

### SetParentWindow

*No description yet.*

```csharp
void SetParentWindow(IExternalFormHolder argParentWindow);
void SetParentWindow(object argParentWindow);
```

| Parameter | Type | Passing |
| --- | --- | --- |
| `argParentWindow` | [IExternalFormHolder](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/IExternalFormHolder.md) | value |

**Returns:** nothing (`void`)

The first overload is an extension method of `IExternalFormHelper` (`using DXP;`) with typed parameters; the second is declared by the interface.

**See also:** [IClient](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/IClient.md)

### Show

This method displays the hidden form.

```csharp
void Show();
```

**Returns:** nothing (`void`)

**See also:** [IClient](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/IClient.md)

**Examples:** [Extension_ModifySchWireColor](https://github.com/AltiumDeveloper/ad-sdk-examples/blob/5b144f54740a53ec578b3b6c3f902b831e0b1144/Extension_ModifySchWireColor/Source%20Code/Commands.cs#L65)

## Returned by

[INavigationDocument.GetDocumentScene](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/INavigationDocument.md#getdocumentscene), [INavigationProvider.NavigateTo](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/INavigationProvider.md#navigateto), [INavigationSystem.NavigateTo](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/INavigationSystem.md#navigateto), [INavigationSystem.NavigateToScene](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/INavigationSystem.md#navigatetoscene), [IWebAppHostModule.CreateSimpleBrowserForm](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/IWebAppHostModule.md#createsimplebrowserform), [IWebAppHostModule.CreateWebBrowserScene](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/IWebAppHostModule.md#createwebbrowserscene), [IModelEditor.GetExternalForm](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/IModelEditor.md#getexternalform), [ExternalFormComponent.GetExternalForm](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/ExternalFormComponent.md#getexternalform)

## Accepted by

[INavigationProvider.NavigateTo](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/INavigationProvider.md#navigateto), [INavigationSystem.NavigateTo](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/INavigationSystem.md#navigateto), [INavigationSystem.NavigateToScene](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/INavigationSystem.md#navigatetoscene), [IHighlightedModelEditor.DrawModel_PinsSelected](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/IHighlightedModelEditor.md#drawmodel_pinsselected), [IHighlightedModelEditor.HighLightComponentPins](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/IHighlightedModelEditor.md#highlightcomponentpins), [IHighlightedModelEditor.RegisterListener](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/IHighlightedModelEditor.md#registerlistener), [IHighlightedModelEditor.ShowPinsAsSelected](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/IHighlightedModelEditor.md#showpinsasselected), [IHighlightedModelEditor.ShowSpecifiedPinsOnly](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/IHighlightedModelEditor.md#showspecifiedpinsonly), [IModelEditor.DrawModel](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/IModelEditor.md#drawmodel), [IModelEditor.DrawModel_FromModel](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/IModelEditor.md#drawmodel_frommodel), [IModelEditor.DrawModel_FromSchImpl](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/IModelEditor.md#drawmodel_fromschimpl), [IModelEditor.DrawModel_FromStepFile](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/IModelEditor.md#drawmodel_fromstepfile), [IModelEditor2.Config](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/IModelEditor2.md#config), [IModelEditor2.DrawModel_FromPCBPrimitive](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/IModelEditor2.md#drawmodel_frompcbprimitive), [ExternalFormComponent.SetExternalForm](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/ExternalFormComponent.md#setexternalform)

## Examples

Used in the SDK examples: [Extension_NavigationProvider](https://github.com/AltiumDeveloper/ad-sdk-examples/blob/5b144f54740a53ec578b3b6c3f902b831e0b1144/Extension_NavigationProvider/Source%20Code/NavigationProvider.cs#L23).
