# Structure

This article shows the inner structure and organization of the elements which build the **RadVirtualKeyboard** control.

**RadVirtualKeyboard** has the following elements in its structure:

* **RadVirtualKeyboardElement** – the main element of the keyboard control. It hosts a collection of keyboard layouts.
* **ExtendedVirtualKeyboardLayoutPanel** - hosts **VirtualKeyboardLayouts** and other **VirtualKeyboardLayoutPanels**. It can have horizontal or vertical orientation and the spacing between layouts can be changed. Note that according to the **LayoutType** the **MainLayoutPanel** might be **ExtendedVirtualKeyboardLayoutPanel**, **SimplifiedVirtualKeyboardLayoutPanel** or **NumpadVirtualKeyboardLayoutPanel**.
* **VirtualKeyboardLayout** - a visual item that hosts the keys of the keyboard, the infrastructure to create new keys, organizes them into logical rows and contains the logical layout implementation. It provides several predefined layouts.
  * **Key** - represents a single button on a physical keyboard. Letters, numbers, functions, and symbols are all represented on keys.
  * **NumpadKey** - represents a single button from the NumPad group on a physical keyboard.
  * **ToggleKey** - represents a single toggleable button on a physical keyboard. Examples for toggle keys are the shift, caps lock, control buttons.

> note The **ToggleKey** class inherits **LightVisualToggleButtonElement**, the **Key** inherits **LightVisualRepeatButtonElement**. They both implements the **IKey** interface.

> caption Figure 1: RadVirtualKeyboard's elements hierarchy

![WinForms RadVirtualKeyboard's elements hierarchy](https://www.telerik.com/products/winforms/documentation/assets/fa657be0f9e3b4f8e0ae488d9867a153/virtual-keyboard-structure001.png)

> caption Figure 2: RadVirtualKeyboard's visual structure

![WinForms RadVirtualKeyboard's visual structure](https://www.telerik.com/products/winforms/documentation/assets/a4a3e07faa023b4a663080d3cfd27411/virtual-keyboard-structure002.png)

## See Also

* [Getting Started](https://www.telerik.com/products/winforms/documentation/controls/virtual-keyboard/getting-started)
