# FormControl

Canonical page: https://www.adaptabletools.com/docs/reference/formcontrol

Opens an  in a popover when clicked, pre-populated from the
row, reusing the full Adaptable Form engine (fields, validation, layout).

```ts title="TypeScript"
export interface FormControl<TData = any, CTX = ActionColumnContext<TData>> extends BaseControl<TData, CTX> 
```

###### Extends

[`BaseControl`](https://www.adaptabletools.com/docs/reference/basecontrol.md)`<TData, CTX>`

## Properties

| Property | Type | Description |
| --- | --- | --- |
| [form](https://www.adaptabletools.com/docs/reference/formcontrol.md#form) | [`AdaptableForm`](https://www.adaptabletools.com/docs/reference/adaptableform.md)`<any>` | The Form to display. Its `onSubmit` receives the entered `formData` and the<br/>Action Column context, so it can write back to the row. |
| [getInitialData](https://www.adaptabletools.com/docs/reference/formcontrol.md#getinitialdata) | `(context: CTX) => Record<string, any>` | Optional function to seed the Form&#39;s initial data from the current row. |
| [type](https://www.adaptabletools.com/docs/reference/formcontrol.md#type) | `'form'` | Discriminator. Set to `'form'`. |

## Property Details

### form

The Form to display. Its `onSubmit` receives the entered `formData` and the
Action Column context, so it can write back to the row.

```ts title="TypeScript"
form: AdaptableForm<any>;
```

###### Property Value

[`AdaptableForm`](https://www.adaptabletools.com/docs/reference/adaptableform.md)`<any>`

### getInitialData

Optional function to seed the Form&#39;s initial data from the current row.

```ts title="TypeScript"
getInitialData?: (context: CTX) => Record<string, any>;
```

###### Property Value

`(context: CTX) => Record<string, any>`

### type

Discriminator. Set to `'form'`.

```ts title="TypeScript"
type: 'form';
```

###### Property Value

`'form'`
