Outils pour utilisateurs

Outils du site


bloc1:evenementiel

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
bloc1:evenementiel [2021/11/30 22:58] – [L'interface] techer.charles_educ-valadon-limoges.frbloc1:evenementiel [2023/11/14 13:04] (Version actuelle) – [Le code non événementiel] techer.charles_educ-valadon-limoges.fr
Ligne 15: Ligne 15:
   * la ligne permet de bien voir la séparation entre la saisie des nombres et l'affichage du résultat,   * la ligne permet de bien voir la séparation entre la saisie des nombres et l'affichage du résultat,
   * les dessins (signes d'opérations) sont plus parlants que le texte…   * les dessins (signes d'opérations) sont plus parlants que le texte…
 +
 +Voici les caractéristiques des objets graphiques :
 +{{ :bloc1:bureau_23.png |}}
 +
 +^  Nom (name)  ^  Type  ^  Autres propriétés  ^
 +|txtValeur1|TextBox|TextAlign : Right|
 +|txtValeur2|TextBox|(idem txtValeur1)|
 +|txtResultat|TextBox|(idem txtValeur1)|
 +|lblOperation|Label|Font : Size : 16|
 +|btnAjouter|Button|Font : Size : 20|
 +|Font : Bold : True| | |
 +|btnMultiplier|Button|(idem btnAjouter)|
 +|btnEffacer|Button|Image : image fournie de la gomme ou image de votre choix redimensionnée|
 +|btsQuitter|Button|(idem btnEffacer avec une autre image)|
 +
 +En l'état, l'application peut déjà être testée : les boutons ne sont pas encore actifs mais il est déjà possible de saisir des valeurs dans les zones de saisie.
 +===== Le code événementiel =====
 +Voici le code de chaque événement :
 +  * **Clic sur btnEffacer : ** Vider les 3 zones de texte et le label de l'opération.
 +<code c#>
 +private void btnEffacer_Click(object sender, EventArgs e)
 +{
 +  txtValeur1.Text = "";
 +  txtValeur2.Text = "";
 +  txtResultat.Text = "";
 +  lblOperation.Text = "";
 +}
 +</code>
 +  * **Clic sur btnQuitter :** Quitter l'application.
 +<code c#>
 +private void btnQuitter_Click(object sender, EventArgs e)
 +{
 +  Application.Exit();
 +}
 +</code>
 +  * **Clic sur btnAjouter :** Afficher le signe **+** dans le label de l'opération. \\
 +Faire la somme des 2 valeurs saisies (si c'est possible) et la transférer dans txtResultat
 +<code c#>
 +private void btnAjouter_Click(object sender, EventArgs e)
 +{
 +  try
 +  {
 +    txtResultat.Text = (float.Parse(txtValeur1.Text) + float.Parse(txtValeur2.Text)).ToString();
 +    lblOperation.Text = "+";
 +  }
 +  catch { };
 +}
 +</code>
 +  * **Clic sur btnMultiplier :** Afficher le signe "x" dans le label de l'opération. \\
 +Faire la multiplication des 2 valeurs saisies (si c'est possible) et la transférer dans txtResultat.
 +<code c#>
 +private void btnMultiplier_Click(object sender, EventArgs e)
 +{
 +  try
 +  {
 +    txtResultat.Text = (float.Parse(txtValeur1.Text) * float.Parse(txtValeur2.Text)).ToString();
 +    lblOperation.Text = "x";
 +  }
 +  catch { };
 +}
 +</code>
 +   * **Changement de texte dans txtValeur1 :** Vider l'affichage du résultat et le label de l'opération.
 +<code c#>
 +private void txtValeur1_TextChanged(object sender, EventArgs e)
 +{
 +  txtResultat.Text = "";
 +  lblOperation.Text = "";
 +}
 +</code>
 +  * **Changement de texte dans txtValeur2 :** Vider l'affichage du résultat et le label de l'opération.
 +<code c#>
 +private void txtValeur2_TextChanged(object sender, EventArgs e)
 +{
 +  txtResultat.Text = "";
 +  lblOperation.Text = "";
 +}
 +</code>
 +
 +===== Le code non événementiel =====
 +Il est possible de créer des modules non événementiels, comme dans la programmation procédurale classique, pour optimiser le code.
 +
 +Par exemple, on remarque que le code est identique dans les 2 foncions événementielles sur le changement de texte dans **txtValeur1** et **txtValeur2**. On peut alors créer un module isolé et l'appeler dans les deux procédures événementielles.
 +  * **Isoler le code :** Créer un module non événementiel
 +<code c#>
 +private void AnnuleOperation()
 +{
 +  lblOperation.Text = "";
 +  txtResultat.Text = "";
 +}
 +</code>
 +  * **Appeler le module :** Appeler le module dans les procédures événementielles (par exemple pour **txtValeur1**).
 +<code c#>
 +private void txtValeur1_TextChanged(object sender, EventArgs e)
 +{
 +  AnnuleOperation();
 +}
 +</code>
 +
bloc1/evenementiel.1638309509.txt.gz · Dernière modification : 2021/11/30 22:58 de techer.charles_educ-valadon-limoges.fr