TUTORIEL TECHNOS .NET 
Présentation des Windows Forms
Equivalent .NET de Swing, les classes Windows.Forms permettent de construire rapidement des interfaces complexes. Première approche. (20/07/2004)

Les développeurs d'applications Windows ont depuis longtemps dû choisir entre deux possibilités : utiliser VisualBasic, qui permet de créer très simplement des interfaces suffisamment complexes pour les applications de tous les jours, ou passer par Visual C/C++, qui avec les MFC (Microsoft Foundation Classes) autorise l'application à utiliser une interface plus complexe.
L'idéal serait bien sûr de pouvoir obtenir le même résultat en passant par la simplicité d'usage de VB, le tout sans être lié à un langage particulier. Les Windows Forms tentent de répondre à cette attente.

De quoi s'agit-il
Les Windows Forms, ou WinForms, font partie d'un espace de nom spécifique de .NET, System.Windows.Forms, que l'on pourrait comparer à la combinaison des 'espaces System.Web.UI.WebControls et System.Web.UI.HtmlControls : un ensemble d'éléments graphiques standards pouvant être réutilisés au sein de l'application. La comparaison s'arrête là : bien que WinForms et WebForms disposent d'éléments du même nom (Button, CheckBox), l'un est destiné au développement d'applications Windows, l'autre aux applications ASP.NET, et on ne peut en aucun cas utiliser l'un de l'autre pour programmer au sein de l'environnement.

Ces éléments ont été conçus pour utiliser au mieux l'architecture de Windows : une fois compilés, ils fonctionneront aussi rapidement que s'il s'agissait de code natif.

Exemple
Le code le plus simple pour obtenir une fenêtre (vide) se présente comme ceci :

using System.Windows.Forms;

public class FenetreSimple : Form
  {
  public FenetreSimple()
    {
    }

  public static void Main()
    {
    Application.Run(new FenetreSimple());
    }
  }


Notre application doit être définie comme une classe dérivant de la classe Form. A la différence de Java, il n'est pas nécessaire que le fichier porte le même nom que la classe principale.
Ceci fait, il faut définir le point d'entrée de l'application : Main(). On y lance l'affichage de notre fenêtre via la classe Application (System.Windows.Forms.Application) et sa méthode Run.
Finalement, il faut indiquer au compilateur que l'on souhaite obtenir une application Windows : csc /t:winexe FenetreSimple.cs .

La simplicité est probante. Voyez cette évolution :

using System;
using System.Windows.Forms;

public class FenetreSimple : Form
  {
  Button btnClic;

  public FenetreSimple()
    {
    this.Text = "Sapristi!";

    btnClic = new Button();
    btnClic.Text = "Petit clic ?";
    btnClic.Left = 25;
    btnClic.Top = 25;
    btnClic.Click = new EventHandler(Clic);
    Controls.Add(btnClic);

    MainMenu leMenu = new MainMenu();
    this.Menu = leMenu;
    MenuItem menuFichier = leMenu.MenuItems.Add("&Fichier");
    menuFichier.MenuItems.Add(new MenuItem("&A propos...", new EventHandler(this.Apropos_Clicked)));
    menuFichier.MenuItems.Add("-");
    menuFichier.MenuItems.Add(new MenuItem("Fermer", new EventHandler(this.Fermer_Clicked)));
    }

  private void Clic(object sender, EventArgs e)
    {
    MessageBox.Show("Bravo, vous avez cliqué!", "Ch'est chuper!");
    }

  private void Fermer_Clicked(object sender, System.EventArgs e)
    {
    this.Close();
    }

  private void Apropos_Clicked(object sender, System.EventArgs e)
    {
    MessageBox.Show("Que de comportements!");
    }

  public static void Main()
    {
    Application.Run(new FenetreSimple());
    }
  }


Beaucoup de changements : nous avons ajouté un bouton, un menu Fichier, et nous avons même poussé le vice jusqu'à déclarer quelques événements. Compilé, cela nous donnera ceci :

Nous définissons tout d'abord au début de notre classe FenetreSimple l'élément btnClic.

  Forum

Réagissez dans les forums de JDN Développeurs

Après avoir défini le titre de la fenêtre avec this.Text, nous déclarons notre bouton et ses caractéristiques. Il est enfin attaché à l'évènement Clic et ajouté à la fenêtre.
Ensuite, nous déclarons le menu et son élément Fichier, qui contiendra trois éléments : "A propos", une barre de séparation et "Fermer". Le premier et le dernier de ces éléments sont liés aux événements Apropos_Clicked et Fermer_Clicked.
Nous définissons enfin les trois événements sus-cités, notamment en utilisant MessageBox.Show qui nous affiche une fenêtre d'alerte système. Seule la première dispose d'un titre.

 
Xavier Borderie, JDN Développeurs
 
Accueil | Haut de page
 
 





Quand achetez-vous le plus en ligne ?
Du lundi au vendredi
Le samedi
Le dimanche

Tous les sondages