C# día 16: formularios windows
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());
}
}