Bueno, pese a que este no es el tema que más interesa hay que verlo: el de las aplicaciones para entornos de ventanas. Hay que tener cuidado a la hora de compilar. Este tema se maneja en entornos Case o IDEs como Visual Studio. Veamos el ejemplo mínimo: /** * Formularios.cs * Ejemplo de uso de formularios windows. * A la hora de compilar, para ejecutar como aplicación de windows * y para que no salga una ventana de DOS, hay que usar estas opciones * csc /t:winexe Formularios.cs o en su defecto * csc /r:System.Windows.Forms.dll /t:winexe Formularios.cs * */ // Usamos esta librería para los formularios de windows using System.Windows.Forms; using System.Drawing; // Para posicionamiento // La clase debe heredar de Form public class Aplicacion : Form { // Método principal public static void Main () { Aplicacion aplicacion = new Aplicacion(); // Vamos a establecer un título aplicacion.Text = "Primera aplicación"; // Vamos a establecer unos botones aplicacion.HelpButton = true; // Metemos botón de ayuda aplicacion.ControlBox = true; // Metemos caja de control aplicacion.MinimizeBox = true; // Metemos botón para minimizar aplicacion.MaximizeBox = true; // Metemos botón para maximizar // TAMAÑO aplicacion.Width = 600; aplicacion.Height = 400; // POSICIÓN Point localizacion = new Point(400,300); // Posición inicial aplicacion.StartPosition = FormStartPosition.Manual; // Posición en el escritorio aplicacion.DesktopLocation = localizacion; // Pod´riamos usar Show, pero con Run nos hace el trabajo sucio Application.Run(aplicacion); } } Y otro ejemplo con controles y eventos /** * Controles.cs * Ejemplo de uso de formularios windows con diversos controles * A la hora de compilar, para ejecutar como aplicación de windows * y para que no salga una ventana de DOS, hay que usar estas opciones * csc /t:winexe Controles.cs o en su defecto * csc /r:System.Windows.Forms.dll /t:winexe Controles.cs * */ // Usamos esta librería para los formularios de windows using System.Windows.Forms; using System.Drawing; // Para posicionamiento // La clase debe heredar de Form // ATENCION, la forma de iniciar la aplicacion de ventanas // suele hacerse de esta forma, con un método específico para inicializar public class Controles : Form { // Los controles hay que definirlos como atributos // para manejarlos desde cualquier método o handler de eventos private Label otraEtiqueta; private Label etiqueta; private Button boton; // Constructor public Controles () { inicializar(); } // Inicializa los componentes private void inicializar () { // Vamos a establecer un título this.Text = "Aplicación con controles"; // TAMAÑO this.Width = 600; this.Height = 400; // Elementos ///////////////// // LABEL o etiqueta etiqueta = new Label(); etiqueta.Text = "Login"; // Con Controls.Add lo añadimos this.Controls.Add(etiqueta); // otra etiqueta, con más control otraEtiqueta = new Label(); otraEtiqueta.Text = "La otra etiqueta"; otraEtiqueta.AutoSize = true; otraEtiqueta.Left = 100; otraEtiqueta.Top = 200; this.Controls.Add(otraEtiqueta); // BUTTON o botones boton = new Button(); boton.Text = "Botón de acción"; boton.Left = 200; boton.Top = 200; // Asociamos un evento al botón boton.Click += new System.EventHandler(this.boton_Click); this.Controls.Add(boton); } // Evento para el botón private void boton_Click (object objeto, System.EventArgs e) { this.Text = "Has pulsado el botón"; this.otraEtiqueta.Text = "Has pulsado!!"; } // Método principal public static void Main () { // Pod´riamos usar Show, pero con Run nos hace el trabajo sucio Application.Run(new Controles()); } }