In component-based programming (Visual Basic, .NETWinForms, Delphi, Lazarus etc.), a form is a representation of a GUI window. A form contains components and controls typically including "OK" and "Cancel" buttons, these objects provide a high-level abstraction of standard or custom widgets which are typically much easier to manipulate than the GUI's underlying API.

At design time, visual controls (buttons, text boxes, and the like) and non-visual components (timers, database connections, layout aids and so on) are placed on the form. These controls and components are positioned and sized interactively, and their properties and event handlers are set with a special editor typically laid out as a grid.

At runtime, automatically generated code creates instances of these controls and components, and sets their properties.