IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Mis à jour le 23/01/2003
Par Sébastien Curutchet

1. Présentation

Ce tutoriel a pour but de vous présenter les winforms en .NET, afin de vous familiariser avec les contrôles ainsi que des techniques permettant de faire des interfaces agréables. Ce document se complètera dans le temps, donc regardez régulièrement si une nouvelle version est sortie sur la page des cours.
Vous n'apprendrez pas à programmer en C# ou VB.NET avec ce document mais à utiliser des classes fournies dans le framework .NET. Si vous souhaitez plus d'informations sur dotnet veuillez vous référez à la page des cours ou bien à la FAQ.
J'essaierai le plus possible de présenter le code VB et C# pour tous les codes présents dans ce tutorial.

1.1 Contexte

A quoi servent les winforms ? Ces dernières permettent de réaliser des applications windows. Grâce aux winforms et dotnet vous pourrez faire vos propres applications. N'oubliez surtout pas que le framework .NET doit être installé sur les machines où votre application va tourner. Pour les développeurs plus chevronnés utilisant des namespaces proposés dans le framework .NET SDK, faites très attention car ces namespaces ne sont pas proposés dans dans le framework standard. Vous devez donc inclure les DLL nécessaires dans votre module d'installation.

1.2 La classe System.Windows.Forms.Form

La classe System.Windows.Forms.Form est la classe de base pour créer une fenêtre. Cette classe hérite de System.Windows.Forms.ContainerControl, ce qui vous permet d'intégrer d'autres contrôles dans votre fenêtre tels que les barres d'outils, les menus, les boutons, les zones de saisie, etc.
La classe System.Windows.Forms.ContainerControl hérite de la classe System.Windows.Forms.ScrollableControl, ce qui signifie que la zone contenant les contrôles peut être plus grande que celle visible. Vous pourrez donc naviguer dans votre grâce à des barres de défilements verticales et horizontales.
La classe System.Windows.Forms.ScrollableControl hérite de la classe System.Windows.Forms.Control, ce qui signifie votre fenêtre est un contrôle et donc peut être intégrée dans une autre fenêtre. Nous parlons alors de MDI (Muliple Document Interface). Je reparlerai de cette propriété plus loin dans de ce tutoriel. Pour vous donner une petite idée, voici quelques propriétés de la classe Form :

ActiveControlObtient ou définit le contrôle actif de la fenêtre.
BackColorObtient ou définit la couleur de fond de la fenêtre.
BackgroundImageObtient ou définit l'image de fond de votre fenêtre.
ClientRectangleObtient la zone dans la quelle vous pouvez intégrer des contrôles.
ControlsObtient la collection contenant l'ensemble des objets contenus dans votre fenêtre.
EnabledObtient ou définit si votre fenêtre est utilisable.
FontObtient ou définit la police utilisée dans votre fenêtre.
HeightObtient ou définit la hauteur de votre fenêtre.
LeftObtient ou définit la distance entre le bord gauche de votre fenêtre et le bord gauche du container(écran dans le cas standard)
NameObtient ou définit le nom de votre fenêtre.
ShowInTaskbarObtient ou définit si votre fenêtre apparaît dans la barre des tâches.
TextObtient ou déninit le titre de votre fenêtre.
TopObtient ou définit la distance du haut de votre fenêtre avec le haut du container
VisibleObtient ou définit si votre fenêtre est visible.
WidthObtient ou définit la largeur de votre fenêtre.

Une fois votre fenêtre définie, il serait bien de l'afficher. Vous avez deux possibilités :
  • Show()
  • ShowDialog()
Ces deux méthodes permettent d'afficher une fenêtre, mais quelle est la différence ? La première n'est pas bloquante : c'est dire que lorsque dans votre application vous ouvrez une fenêtre avec Show() vous pouvez toujours utiliser la fenêtre qui se trouve dessous, alors qu'avec ShowDialog() vous devez nécessairement la fermer pour pouvoir réutiliser la fenêtre qui se trouve dessous.

1.3 Notion de container

Cette notion est importante car elle vous permet d'intégrer des contrôles dans d'autres contrôles. Un contrôle peut contenir d'autres contrôles s'il hérite de la classe System.Windows.Forms.ContainerControl. Vous pouvez obtenir la liste des contrôles contenu dans un contrôle grâce à la propriété Controls. Nous verrons plus loin comment intégrer des contrôles à d'autres en dotnet.

1.4 Exemple de code

Comme dans tout début dans un langage nous allons faire le célèbre HelloWorld.

C#

using System;
using System.Windows.Forms;

public class Form1 : System.Windows.Forms.Form
{
  public Form1()
  {
    //Code d'initialisation de la fenêtre
    this.Text = "HelloWorld";
  }

  protected override void Dispose(bool disposing)
  {
    if( disposing )
    {
      if( components != null )
      {
        components.Dispose();
      }
    }
    base.Dispose( disposing );
  }
}

VB.NET

' A venir

Biensûr ce bout de code seul ne fonctionne pas car vous n'avez pas déclaré de Main (point d'entrée d'un programme). Nous verrons celà un peu plus loin.

1.5 Les évènements

Les évènements sont des signaux que vous pouvez capturer afin d'y associer un traitement. En général nous trouvons les évènements lors d'une action de l'utilisateur sur votre interface graphique. Nous pouvons aussi trouver des évènements pour ce qui est des traitements asynchrones : dans ce cas ils permettent de dire que quelque chose s'est passé et que vous devez le traiter.
Explications C#
Explications VB.NET

1.6 static void Main() / Sub Main()

La fonction Main n'est présente que dans les applications consoles ou graphiques. Le Main, comme il a été dit précédemment, correspond au point d'entrée de votre programme. C'est donc cette fonction qui s'exécutera en premier.