> For the complete documentation index, see [llms.txt](https://docs.iceteagroup.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.iceteagroup.com/general/framework/controls.md).

# Controls

All controls from Team Developer are replicated in the PPJ Framework with the same name but with the "Sal" prefix.&#x20;

In the table below you can find the list of all the supported equivalent controls:

| Control Type          | Class name in the PPJ Framework             | Base .NET control |
| --------------------- | ------------------------------------------- | ----------------- |
| Data Field            | SalDataField                                | TextBox           |
| Multiline Field       | SalMultilineField                           | TextBox           |
| Combo Box             | SalComboBox                                 | ComboBox          |
| List Box              | SalListBox                                  | ListBox           |
| Check Box             | SalCheckBox                                 | CheckBox          |
| Radio Button          | SalRadioButton                              | RadioButton       |
| Option Button         | SalOptionButton                             | CheckBox          |
| Pushbutton            | SalPushbutton                               | Button            |
| Child Table           | SalTableWindow                              | UserControl       |
| Column                | SalTableColumn                              | Control           |
| Picture               | SalPicture                                  | PictureBox        |
| Horizontal Scroll Bar | SalHorizontalScrollBar                      | HScrollBar        |
| Vertical Scroll Bar   | SalVerticalScrollBar                        | VScrollBar        |
| Custom Control        | SalCustomControl                            | Control           |
| ActiveX Control       | SalActiveX                                  | AxHost            |
| Line                  | SalLine                                     | Control           |
| Frame                 | SalFrame                                    | Control           |
| Group Box             | SalGroupBox                                 | GroupBox          |
| Background Text       | SalBackgroundText                           | Label             |
| Form Window           | <p>SalFormWindow</p><p>SalRibbonBarForm</p> | Form              |
| MDI Window            | <p>SalMDIWindow</p><p>SalRibbonBarMDI</p>   | Form              |
| Table Window          | SalFormTableWindow                          | Form              |
| Dialog Box            | SalDialogBox                                | Form              |

All the controls in the PPJ Framework are directly derived from the equivalent control in .NET: WinForms for desktop solutions, and Wisej for web solutions.

All PPJ controls implement one or more special interfaces used by the PPJ Framework to recognize PPJ controls and correctly redirect specialized functionality.

The table below lists all the control's interfaces:

| Interface          | Description                                                                                                                                                                                                                                                                                    |
| ------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| ISalWindow         | All PPJ controls implement this interface.                                                                                                                                                                                                                                                     |
| ISalControl        | Only controls that can hold a value implement this interface. Like SalRadioButton, SalDataField, SalVerticalScrollBar. Controls that cannot hold a value, like SalGroupBox or SalLine, do not implement this interface. These controls can also be bound in a SQL statement as bind variables. |
| ISalEditControl    | Editable controls implement this interface.                                                                                                                                                                                                                                                    |
| ISalListControl    | All list controls implement this interface. This is used to normalize also controls like VisOutlineListBox that should respond to SalList\* functions as if they were list boxes.                                                                                                              |
| ISalPictureControl | Controls that can show an image implement this interface.                                                                                                                                                                                                                                      |
| ISalRadioButton    | Controls that behave as a radio button implement this interface. Typically these are SalRadioButton, SalCheckBox and SalOptionButton.                                                                                                                                                          |
| ISalAccessory      | Accessories controls like SalFormToolBar, SalFormStatusBar and SalFormClientArea implement this interface.                                                                                                                                                                                     |

All the controls implementing ISalWindow expose a new event MessageActions. This is where all events that are compatible to the original  Team Developer messages are dispatched to as events.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.iceteagroup.com/general/framework/controls.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
