En la programación basada en componentes ( Visual Basic , .NET WinForms , Gambas , Delphi , Lazarus , etc.), un formulario es una representación de una ventana de la GUI . Un formulario contiene componentes y controles , que normalmente incluyen botones "Aceptar" y "Cancelar"; estos objetos proporcionan una abstracción de alto nivel de widgets estándar o personalizados que normalmente son mucho más fáciles de manipular que la API subyacente de la GUI.
En el momento del diseño, se colocan en el formulario controles visuales (botones, cuadros de texto y similares) y componentes no visuales (temporizadores, conexiones a bases de datos , ayudas de diseño, etc.). Estos controles y componentes se colocan y dimensionan de forma interactiva, y sus propiedades y controladores de eventos se configuran con un editor especial que normalmente se presenta como una cuadrícula.
En tiempo de ejecución, el código generado automáticamente crea instancias de estos controles y componentes, y establece sus propiedades.
Históricamente, los formularios se solían implementar como pantallas en una terminal orientada a bloques conectada a una computadora central. Los formularios HTML son conceptualmente muy similares.