Comment : créer des applications Windows Forms C#
Mise à jour : novembre 2007
Dans cette rubrique, vous allez faire connaissance avec certains éléments de l'environnement de développement intégré (IDE, Integrated Development Environment) de Visual C# Express en utilisant Windows Forms pour générer un programme C# relativement simple. Windows Forms fournit à votre projet des composants, tels que des boîtes de dialogue, des menus, des boutons et de nombreux autres contrôles, qui constituent l'interface utilisateur d'une application Windows standard. Fondamentalement, ces contrôles sont simplement des classes de la bibliothèque de classes .NET Framework. Le mode concepteur de Visual C# Express vous permet de faire glisser les contrôles sur le formulaire principal de votre application et d'ajuster leur taille et leur position. Pendant ce temps, l'IDE ajoute automatiquement le code source nécessaire à la création d'une instance de la classe appropriée et à son initialisation.
Cet exemple indique comment créer votre propre application pour navigateur Web, que vous pouvez personnaliser avec les raccourcis vers vos sites Web favoris.
Dans cette section, vous allez apprendre à effectuer les tâches suivantes :
créer une nouvelle application Windows Forms ;
basculer entre le mode code et le mode concepteur ;
modifier les propriétés Windows Form ;
ajouter un contrôle MenuStrip ;
ajouter un contrôle Button ;
créer et remplir un contrôle ComboBox ;
utiliser un contrôle WebBrowser ;
créer des gestionnaires d'événements pour les contrôles.
Pour une présentation vidéo, consultez la page Vidéo : Comment créer une application Windows Forms C#.
Pour créer une application Windows C#
Dans le menu Fichier, cliquez sur Nouveau projet.
La boîte de dialogue Nouveau projet s'affiche. Les différents types d'applications par défaut pouvant être créés par Visual C# Express sont listés dans cette boîte de dialogue.
Sélectionnez Application Windows Forms comme type de projet.
Donnez à votre application le nom Navigateur Web.
Cliquez sur OK.
Visual C# Express crée un dossier pour votre projet dont le nom est tiré du titre du projet, puis il affiche votre nouveau Windows Form, nommé Form1, en mode concepteur. Vous pouvez basculer entre le mode concepteur et le mode code à tout moment en cliquant avec le bouton droit sur l'aire de conception ou dans la fenêtre de code, puis en sélectionnant Afficher le code ou Concepteur de vues.
Le Windows Form que vous voyez en mode concepteur est une représentation visuelle de la fenêtre qui s'ouvrira au lancement de votre application. En mode concepteur, vous pouvez faire glisser divers contrôles de la boîte à outils vers le formulaire. Ces contrôles ne sont pas « réels » ; ce ne sont que des images faciles à déplacer sur tout le formulaire et à positionner à un endroit précis.
Une fois que vous avez fait glisser un contrôle vers le formulaire, Visual C# crée en arrière-plan le code qui positionne correctement ce contrôle à l'exécution du programme. Ce code source se trouve dans un fichier qui est généralement imbriqué et masqué. Vous pouvez voir ce fichier nommé Form1.designer.cs dans l'Explorateur de solutions en développant Form1.cs.
Si vous êtes en mode code, basculez vers le mode concepteur en cliquant avec le bouton droit sur la fenêtre de code, puis en cliquant sur Concepteur de vues. Vous pouvez maintenant modifier la taille du Windows Form.
Cliquez sur l'angle inférieur droit du Windows Form.
Lorsque le pointeur se transforme en flèche à deux pointes, faites glisser l'angle du formulaire jusqu'à ce que ce qu'il devienne au moins aussi large et aussi long que le quart de l'écran.
Comme il s'agit de la fenêtre dans laquelle les pages Web s'afficheront, elle ne doit pas être trop étriquée.
Assurez-vous que la fenêtre Propriétés est affichée. Elle se trouve par défaut en bas à droite de l'IDE, mais vous pouvez la déplacer si vous le souhaitez. Dans l'illustration suivante, elle est représentée dans l'angle supérieur droit. Si vous ne voyez pas la fenêtre Propriétés, dans le menu Affichage, cliquez sur Fenêtre Propriétés. La fenêtre obtenue répertorie les propriétés du formulaire ou du contrôle Windows sélectionné et vous pouvez y modifier les valeurs existantes.
Modifiez le titre du Windows Form.
Cliquez sur le formulaire pour le sélectionner.
Dans la fenêtre Propriétés, allez jusqu'à Text, sélectionnez le texte "Form1" et tapez Navigateur Web.
Appuyez sur ENTRÉE ou TAB pour déplacer le focus de la zone de texte "Text".
Vous pouvez constater que le texte en haut de votre formulaire Windows (dans la zone appelée barre de titre) a changé.
Pour modifier rapidement le nom d'un contrôle, cliquez avec le bouton droit sur le contrôle et cliquez sur Propriétés. Vous pouvez taper le nouveau nom du contrôle dans la propriété Name.
Cliquez sur le bouton Boîte à outils dans la barre d'outils ou, dans le menu Affichage, cliquez sur Boîte à outils. Faites défiler la liste de contrôles vers le bas et développez Menus et barres d'outils jusqu'à ce que MenuStrip s'affiche. Faites glisser ce contrôle n'importe où sur le formulaire Windows.
Ce contrôle crée un menu par défaut en haut du formulaire.
Dans la zone Tapez ici, tapez le nom du menu (dans ce cas Navigation). Lorsque vous appuyez sur ENTRÉE, de nouvelles zones vides apparaissent pour créer d'autres menus et éléments de menu. Dans la zone inférieure, tapez Début. Appuyez sur ENTRÉE. D'autres zones s'affichent. Tapez Précédent. Appuyez sur ENTRÉE et tapez Suivant.
Ces éléments de menu forment la base de vos contrôles de navigation dans un site Web.
Ajoutez un bouton.
Dans la Boîte à outils, dans la catégorie Contrôles communs, faites glisser un contrôle Button vers le milieu du Windows Form approximativement, juste en dessous de la barre de menus. Dans la fenêtre Propriétés, remplacez la propriété Text par Go au lieu de button1 et remplacez le nom de la conception, qui ressemble à (Name), par goButton au lieu de button1.
Ajoutez un contrôle ComboBox.
Dans la Boîte à outils, dans la catégorie Contrôles communs, faites glisser un contrôle ComboBox et positionnez-le à gauche du nouveau bouton. Faites glisser les bords et les coins pour redimensionner et repositionner le contrôle ComboBox jusqu'à ce qu'il soit aligné avec le bouton.
Remarque : Lorsque vous déplacez des contrôles autour d'un formulaire Windows, vous voyez apparaître des lignes bleues. Ces lignes sont des repères qui vous aident à aligner les contrôles verticalement et horizontalement. Vous pouvez également aligner des contrôles en en sélectionnant plusieurs à la fois. Pour ce faire, cliquez et faites glisser une zone de sélection autour des contrôles ou maintenez la touche MAJ enfoncée pendant que vous cliquez sur les contrôles. Une fois que vous avez sélectionné plusieurs contrôles, vous pouvez les réaligner et les redimensionner à l'aide des icônes d'alignement et de redimensionnement. Ces icônes se trouvent dans la Barre d'outils Disposition en haut de la fenêtre Design.
Remplissez ComboBox.
Un contrôle ComboBox fournit une liste déroulante d'options dans laquelle l'utilisateur peut effectuer son choix. Dans ce programme, le contrôle ComboBox va contenir la liste de vos sites Web favoris pour que vous puissiez y accéder rapidement.
Pour créer la liste de sites, sélectionnez ComboBox et consultez ses propriétés. Sélectionnez la propriété Items. Le mot (Collection) avec un bouton de sélection (...) s'affiche. Cliquez sur ce bouton pour modifier le contenu du ComboBox. Ajoutez autant d'URL de sites Web que vous le souhaitez, en appuyant sur RETOUR après chacune.
Remarque : Veillez à inclure http:// avant chaque adresse de site Web.
Ajoutez le contrôle WebBrowser.
Dans la Boîte à outils, dans la catégorie Contrôles communs, défilez vers le bas jusqu'au contrôle WebBrowser. Faites glisser le contrôle vers le formulaire Windows. Redimensionnez le contrôle WebBrowser pour qu'il tienne à l'intérieur du Windows Form sans masquer les contrôles ComboBox et Button. Si le contrôle WebBrowser ne se redimensionne pas facilement, définissez-le d'abord à la taille voulue, ouvrez ses propriétés, trouvez le paramètre Dock et assurez-vous qu'il n'a pas la valeur none. Lorsque vous affectez les valeurs Top, Bottom, Left, Right aux paramètres Anchor, le contrôle WebBrowser se redimensionne correctement lorsque vous redimensionnez la fenêtre d'application.
Le contrôle WebBrowser assure la tâche difficile de rendu de pages Web. Dans votre application, vous y accédez par une instance de la classe WebBrowser. Dans form1.Designer.cs, vous pouvez constater qu'une instance de cette classe a été ajoutée à votre code d'application, avec des instances de classes qui représentent les autres éléments que vous avez ajoutés à l'aide du concepteur. Ce sont ces instances que vous utiliserez lorsque vous ajouterez des gestionnaires d'événements pour les contrôles et des méthodes d'appel de ces derniers.
Ajoutez un gestionnaire d'événements pour le contrôle Button.
Maintenant que vous avez terminé la phase de conception de votre application, vous pouvez commencer à ajouter du code pour indiquer les fonctionnalités du programme.
Le programme doit disposer de gestionnaires d'événements pour le bouton, ainsi que pour chaque option de menu. Un gestionnaire d'événements est une méthode qui est exécutée lorsque l'utilisateur interagit avec le contrôle. Visual C# Express crée automatiquement des gestionnaires d'événements vides.
Si vous double-cliquez sur le bouton, vous voyez apparaître l'éditeur de code de votre projet. Vous pouvez également constater que le gestionnaire de l'événement provoqué par un clic (qui est un message d'événement qui s'affiche lorsque l'utilisateur clique sur un bouton) a été créé. Ajoutez le code à la méthode du gestionnaire d'événements comme dans le code suivant.
private void goButton_Click(object sender, System.EventArgs e) { webBrowser1.Navigate(new Uri(comboBox1.SelectedItem.ToString())); }
Ce code prend l'élément actuellement sélectionné dans le contrôle ComboBox, une chaîne qui contient une URL Web, et le passe à la méthode Navigate du navigateur Web. La méthode Navigate charge et affiche le contenu de la page Web à cet emplacement.
Ajoutez les gestionnaires d'événements pour les options MenuStrip.
Retournez à la fenêtre Concepteur et double-cliquez tour à tour sur chacun des sous-éléments de menu. Visual C# Express crée des méthodes de gestionnaire d'événements pour chacun d'entre eux. Modifiez ces méthodes comme dans le code suivant.
private void homeToolStripMenuItem_Click(object sender, System.EventArgs e) { webBrowser1.GoHome(); } private void goForwardToolStripMenuItem_Click(object sender, System.EventArgs e) { webBrowser1.GoForward(); } private void goBackToolStripMenuItem_Click(object sender, System.EventArgs e) { webBrowser1.GoBack(); }
Chacun des gestionnaires de menu appelle une méthode de navigation prise en charge sur la classe WebBrowser.
Remarque : Dans ce code, vous pouvez constater que les noms donnés par défaut aux options de menu peuvent prêter à confusion. Il est de ce fait judicieux de modifier le nom de chaque contrôle de menu à mesure que vous les créez à l'aide de l'éditeur Propriétés. Le nom du gestionnaire reflète le nom de l'option de menu.
Consultez le code que Visual C# a écrit pour vous.
L'IDE de Visual C# a déjà automatiquement écrit du code d'initialisation. En mode code, recherchez le constructeur de la classe Form1. Il porte une signature de public Form1(). Cliquez avec le bouton droit sur la méthode InitializeComponent qui est appelée à partir du constructeur, puis cliquez sur Atteindre la définition. Tout le code écrit en arrière-plan pendant que vous faisiez des glisser-déplacer de contrôles et que vous définissiez les propriétés dans la fenêtre Propriétés s'affiche.
Ajoutez votre propre code d'initialisation.
La dernière tâche consiste à ajouter votre propre code d'initialisation à Form1. Le constructeur ne doit jamais être utilisé pour appeler un code susceptible de lever une exception. Ce type de code doit par conséquent se trouver à un autre emplacement, en l'occurrence dans la méthode Form1_Load. Cliquez sur l'onglet Form1.cs[Design] en haut de l'éditeur de code pour retourner à Windows Form. Sélectionnez le formulaire. Dans la fenêtre Propriétés, cliquez sur le bouton Événements (celui affichant un éclair), puis double-cliquez sur Charger. Cela ajoute une méthode de gestionnaire d'événements et positionne votre curseur dans la méthode en mode code.
Lorsqu'un utilisateur lancera votre programme, Windows en notifiera le formulaire de votre application en envoyant un événement Load. Lorsque le formulaire reçoit cet événement, il appelle la méthode Form1_Load. Les méthodes appelées en réponse à des événements sont des gestionnaires d'événements. Le système appellera votre événement le moment venu ; votre rôle consiste à mettre le code dans le gestionnaire d'événements que vous souhaitez exécuter lorsque l'événement se produit.
En mode code, ajoutez deux lignes à la méthode Form1_Load, comme dans le code suivant. Le contrôle WebBrowser affiche alors la page d'accueil par défaut de votre ordinateur et définit la valeur initiale de ComboBox.
private void Form1_Load(object sender, EventArgs e) { comboBox1.SelectedIndex = 0; webBrowser1.GoHome(); }
Générez et exécutez le programme.
Appuyez sur F5 pour générer et exécuter le navigateur Web. Le Windows Form s'affiche à l'écran, puis il affiche la page d'accueil par défaut de votre ordinateur. Vous pouvez utiliser le contrôle ComboBox pour sélectionner un site Web et cliquer sur Aller à pour l'atteindre. Les options de menu vous permettent de revenir au début et de naviguer entre les sites Web déjà visités.
Si vous êtes novice en programmation en C#, il peut être utile pour vous de lire maintenant la section Initiation au langage C#. Pour plus d'informations sur l'environnement de développement de Visual C# Express et sur la création d'applications console à l'aide d'IntelliSense en particulier, consultez Comment : créer une application console C#. . Pour plus d'informations sur la génération d'applications Windows Presentation Foundation, consultez Comment : créer une application WPF C#.
Voir aussi
Tâches
Comment : créer une application console C#
Comment : créer une application WPF C#