Check

Exercices Simples

Les WINFORM

Exercice 1 : Une première application

a - Réalisation de l’interface.

Nous allons réaliser une petite application de gestion d’une liste déroulante. L’utilisateur peut ajouter et supprimer des items à la liste.

exercices-simples1

  • Lancez VS (Visual Studio) et créez un nouveau projet. Nommez-le WinFiche1 et enregistrez-le dans votre répertoire.
    Le premier formulaire de l’application est créé automatiquement. Renommez le FrmPrincipal (propriété name)

  • Il vaut mieux nommer les composants dès leur création… Ne confondez pas les propriétés Text et Name !!!

  • Attention ne touchez pas au code généré par VS, vous risquez de tout casser!!!

  1. Ajouter un composant ListBox, éditez les propriétés de la liste créée à l'aide de la fenêtre des propriétés et nommez-la lstListe. Demandez une liste triée.

  2. Ajoutez un composant TextBox et nommez-le txtSaisie.

  3. Ajoutez deux composants Button, nommez-les btnAjouter et btnSupprimer, changez le texte des boutons et faites du bouton btnAjout le bouton par défaut (il s'agit d'une propriété du formulaire).

  4. Ajoutez un composant Label dont la propriété text sera Une liste déroulante et la police fonte Ms Sans sérif 14 gras.

  5. Indiquez le texte de la barre de titre de la fenêtre : Premier programme (propriété Text du formulaire).

  6. Testez votre interface en cliquant sur le bouton Démarrer de la barre d'outils. Il existe plusieurs méthodes :

    • Par le menu déboguer :

    • Par le bouton de raccourci :

    • Par la touche F5

b - Ajout du code.

Bouton Ajouter

Faire un double click sur le bouton pour éditer la méthode correspondant à un clic sur ce bouton de commande (Événement Click du bouton). Complétez-la avec le code suivant :

private void btnAjout_Click(object sender, System.EventArgs e)
{
    lstListe.Items.Add(txtSaisie.Text); 
    txtSaisie.Text=""; // ou txtSaisie.Clear() ; txtSaisie.Focus();
}

En appuyant sur F1 après avoir sélectionné un élément du formulaire, on obtient une aide sur le composant concerné.
N’hésitez pas à parcourir cette aide en ligne :)

Bouton Supprimer

Voici le code correspondant à un clic sur ce bouton (n’oubliez pas de consulter l’aide et d’examiner attentivement)…

private void btnsupprimer_Click(object sender, System.EventArgs e)
{
    lstListe.Items. RemoveAt(lstListe.SelectedIndex);
}

Messages d’erreur

Vous allez ajouter un message d’erreur dans le cas où l’utilisateur clique sur Ajouter avec une zone de saisie vide et un autre dans le cas où il clique sur Supprimer sans item sélectionné dans la liste. Utilisez pour cela la classe MessageBox, consultez l’aide…

c - Dernières retouches

Mettez au point les derniers petits détails avec la gestion des évènements :

focus au lancement
Allez chercher l’évènement Load du formulaire, clicker et saisir le code suivant :

private void FrmPrincipal_Load(object sender, EventArgs e)
{
    this.WindowState = FormWindowState.Normal; 
    this.txtSaisie.Focus();
}

Le bouton Quitter
Ajoutez un bouton Quitter, btnQuitter. Quand vous choisissez un des composants (ici BtnQuitter), vous obtenez la liste des évènements sur lesquels vous pourrez programmer la réaction de votre application.
Dans l’exemple, c’est l’évènement Click qui est choisi.

exercices-simples2

L’IDE vous propose, alors, une structure vous permettant de programmer votre application :

private void btnQuitter_Click(object sender, EventArgs (e)
{
    Application.Exit();
}

Ici, on quittera l’application pour fermer une seule feuille, on utilisera la méthode Close().

La structure se compose ainsi :

  • Private : la structure est liée au formulaire FrmPrincipal et
    uniquement ce formulaire,

  • void : la structure proposée est une procédure,

  • btnQuitter_Click : nom de la procédure,

  • object sender: objet avec lequel la procédure est appelée ici btnQuitter,

  • EventArgs e: c’est l’évènement sur BtnQuitter qui déclenchera la procédure.

Testez…

Résultat

premierProgramme

Exercice 2:

Nous allons réaliser une petite calculatrice.

  • Créez un nouveau projet. Nommez-le Fiche2, n’oubliez pas de définir votre projet en tant que projet de démarrage (le nom du projet doit être en gras)
    Le premier formulaire de l’application est créé automatiquement. Renommez le FrmCalculs (propriété name)
exercices-simples4

  1. Créer l'interface ci-dessus avec deux zones de texte pour la saisie et une zone label pour le résultat et deux boutons.

  2. Faire en sorte que l'ouverture du formulaire se fasse sur le premier champ,

  3. Modifier les noms des contrôle texte(txtNb1 et txtNb2) du résultat (lblResult).

  4. Le bouton ajouter doit :

    • Vérifier que les 2 nombres saisis ne sont pas blancs, prendre soin de saisir du float (virgule) ou un entier (cf. à la fin). Un message sera affiché par MessageBox si un champ n'est pas renseigné ou n'est pas numérique.
    • Le bouton Effacer remet à blanc les 2 champs texte et le label résultat.
    • Le programme doit calculer la somme des deux nombres, écrire le code correspondant pour chaque bouton.
  5. Tester votre application.

Résultat

calculatriceSimple

Exercice 3:

  • Créez un nouveau projet. Nommez-le Fiche3, n’oubliez pas de définir votre projet en tant que projet de démarrage (le nom du projet doit être en gras)
  • Copiez-collez le formulaire precédent,
    • dans la partie code changer le nom du namespace en Fiche3
    • dans la partie FrmCalculs.Designer.cs changer le nom du namespace en Fiche3
  • Adaptez le code bouton Ajouter.
  1. Écrire une classe Calcul qui comporte en données privées deux nombres et des méthodes publiques pour :

    • ajouter les nombres,
    • multiplier les nombres,
    • diviser,
    • soustraire.
  2. Tester en instanciant la classe et en l'utilisant dans le code du bouton Ajouter.

Exercice 4

Nous allons réaliser une calculatrice plus avancée.

  • Créez un nouveau projet. Nommez-le Fiche4, n’oubliez pas de définir votre projet en tant que projet de démarrage (le nom du projet doit être en gras)
  • Copiez-collez le formulaire precédent,
    • dans la partie code changer le nom du namespace en Fiche4
    • dans la partie FrmCalculs.Designer.cs changer le nom du namespace en Fiche4
  • Utilisez la class Calcul
exercices-simples5

  1. Modifier l'interface pour obtenir l'écran ci-dessus. (Utiliser un contrôle groupBox pour contenir les radio button),

  2. En cliquant sur le bouton Calculer, on doit avoir le résultat approprié selon la case option sélectionnée. (propriété checked),

  3. Programmer le bouton Effacer,

  4. Programmer le bouton Quitter,

  5. Testez votre application.

Résultat

calculatriceAvancee

Exercice 5

Il s’agit de réaliser une application gérant deux listes déroulantes dont l’interface est la suivante :

exercices-simples6

  • Les boutons + et - permettent d’ajouter et de supprimer des éléments aux listes déroulantes.

  • Le bouton >> fait passer l’élément sélectionné dans la liste de gauche vers la liste de droite.

  • Le bouton << a l’effet inverse.

  • Le bouton Quitter permet de quitter l’application après une demande de confirmation.

Quelques indications utiles

  • Ajoutez un nouveau projet Winform Fiche5, n’oubliez pas de définir votre projet en tant que projet de démarrage (le nom du projet doit être en gras)
  • Le premier formulaire de l’application est créé automatiquement. Renommez le FrmListes (propriété name)
  1. Donnez au Formulaire le nom Deux listes

  2. Réalisez l'interface en prenant soin de respecter les règles de nommage ex: txtSaisie1, lst1, btnPlus1...

  3. Réalisez le code associé aux boutons + et - qui ajoute le texte saisi dans la liste ou retire le texte sélectionné de la liste. Testez !

  4. Réalisez le code des boutons << et >> qui fait passer d'une liste à l'autre les éléments sélectionnés.

  5. Créez une classe Liste dans laquelle vous créez une List nommée _listeValeur instanciée dans le contrôleur.

  6. Créez les méthodes :

    • Ajouter
    • Supprimer
    • TransfererVers (transférer une valeur d'une liste vers une autre)
    • TransfererDe (transférer une valeur à partir d'une liste d'une liste)
    • ObtenirValeurs (récupérer la liste)
  7. Instanciez 2 listes dans le constructeur du formulaire (n'oubliez pas de les déclarer en attribut)

  8. Créez 2 BindingSource nommés bdgListe1 et bdgListe2, affectez-leur des valeurs selon l'exemple précédent (n'oubliez pas de les déclarer en attribut) :

 bdgListe1 = new BindingSource();
 bdgListe1.DataSource=Liste1.ObtenirValeurs();
 lst1.DataSource = bdgListe1;
  1. Gérez le code des boutons à partir de la classe liste

Comme tous les boutons ont un code identique, comme le bouton plus de la liste1 et la Liste2, vous pouvez créer une fonction qui prend en paramètre les éléments qui sont modifiables.

Résultat

premierProgramme

Exercice 6

exercices-simples7

  1. Créez un nouveau projet. Nommez-le Fiche6, n'oubliez pas de définir votre projet en tant que projet de démarrage (le nom du projet doit être en gras)

  2. Créez les interfaces suivantes : FrmSaisie, nommez-la, Client et FrmListe, nommez-la, Liste Clients.

  3. Dans le projet :, ajouter une classe Client (nom, prénom, cp, ville) créer le constructeur, la méthode ToString, les accesseurs et les mutateurs.

a - Frmsaisie

  1. Déclarez en début de la classe une collection de type Client dans lequel on va ajouter les clients :
// En attribut
public List<Client> mesClients;
// dans le controleur aprés InitializeComponent
mesClients = new List<Client>();
  1. Le click sur le bouton Ajouter permettra d'ajouter un client à la collection.

    • Les données saisies seront ensuite effacées.
    • les coordonnées du client seront affichées sous les boutons
  2. Lister affichera le deuxième formulaire, uniquement si la collection n'est pas vide. L'appel du formulaire prend en paramètre la collection.

    using (FrmListe f = new FrmListe(mesClients))
    {
        f.ShowDialog(); 
    }
  1. Le bouton Quitter permet de quitter l'application

b - FrmListe

  1. Créez un attribut pour la collection, nommez le mesClients et affectez-lui dans le contrôleur la valeur passée en paramètre.

  2. Créez 1 BindingSource nommés bdgListeClient (n'oubliez pas de les déclarer en attribut) et affectez-lui la collection :

  3. Afficher du deuxième formulaire permettra d'afficher la liste à partir de la collection.

  4. Le bouton Retour permet de fermer le formulaire

  5. Le bouton Quitter permet de quitter l'application.

  6. Testez votre application

Résultat

premierProgramme