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

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

Création evenement C# [Débutant]


Sujet :

C#

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2012
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2012
    Messages : 35
    Points : 27
    Points
    27
    Par défaut Création evenement C#
    Bonjour,

    je cherche à créer un événement (modification du contenu d'une textBox) à chaque fois qu'une variable (int) est modifié par mon programme.

    Comment faire je sais juste créer des événements lorsqu'on clique sur un bouton.

    Merci pour vos réponses.

  2. #2
    Membre chevronné Avatar de ZebreLoup
    Homme Profil pro
    Ingénieur Financier
    Inscrit en
    Mars 2010
    Messages
    994
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur Financier
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 994
    Points : 2 131
    Points
    2 131
    Par défaut
    Moi je vois 2 possibilités :
    - Soit ta variable n'est modifiée que par ton code, et ce code n'est pas trop compliqué. Dans ce cas, tu fais une fonction ModifierVariable(int nouvelleValeur) dans laquelle tu modifies le contenu de la textBox après avoir modifier la valeur de ta variable. Et partout dans ton code tu fais bien attention à toujours utiliser cette fonction et ne jamais modifier en direct la variable. Pas très propre mais simple.
    - Soit ton code est compliqué, d'autres peuvent être amenés à le modifier ou l'enrichir, ou alors ta variable peut être modifiée par l'utilisateur ou d'autres évènements. Dans ce cas, tu ne dois plus utiliser une variable mais une instance d'une classe que tu vas créer. Cette classe aura une variable int en private. Tu peux utiliser une propriété ou mieux l'accesseur this pour modifier cette variable. Et dans la partie set, tu déclenches l'évènement que tu auras créé dans la classe. Regarde dans la section des tutos C# pour les évènements personnalisés. Je vais essayer de faire un exemple rapide.
    « Compter en octal, c’est comme compter en décimal, si on n’utilise pas ses pouces » - Tom Lehrer
    « Il est assez difficile de trouver une erreur dans son code quand on la cherche. C’est encore bien plus dur quand on est convaincu que le code est juste. » - Steve McConnell

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2012
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2012
    Messages : 35
    Points : 27
    Points
    27
    Par défaut
    Merci pour ton aide

    Enfait j'ai une classe qui génère des véhicules
    cette classe contient une méthode pour compter chaque véhicules générés

    Dans une autre classe j'aimerai incrémenter la valeur de la TextBox à chaque fois qu'un véhicule est généré pour que l'utilisateur puisse voir le nombre de véhicules générés

  4. #4
    Membre chevronné Avatar de ZebreLoup
    Homme Profil pro
    Ingénieur Financier
    Inscrit en
    Mars 2010
    Messages
    994
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur Financier
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 994
    Points : 2 131
    Points
    2 131
    Par défaut
    Ok, dans ce cas, voici ce que je te propose :

    Tout d'abord, il faut créer une classe pour l'argument de ton évènement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    	//Tout d'abord les arguments de l'évènement.
    	//Ce sera le nouveau nombre de voitures
    	public class IntChangeEventArgs : EventArgs
    	{
    		private int _intValue;
     
    		public IntChangeEventArgs(int intValue)
    		{
    			_intValue = intValue;
    		}
     
    		public int IntValue
    		{
    			get {
    				return _intValue;
    			}
    		}
    	}
    Ensuite, on va compléter ta classe "Vehicule" en y ajoutant un évènement "static" et une variable "static" comptant le nombre de vehicule. Dans le constructeur, on incrémente la variable et on déclenche l'évènement.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    	//Notre classe de véhicule
    	public class Vehicule
    	{
    		//Le délégué pour stocker les références sur les méthodes
    		public delegate void NewVehicleEventHandler(object sender, IntChangeEventArgs e);
     
    		//L'évènement
    		public static event NewVehicleEventHandler OnNewVehicle;
     
    		private static int _nbVehicle = 0; //Le nombre de vehicules
     
    		//Nouveau véhicule
    		public Vehicule()
    		{ 
    			_nbVehicle++;
    			IntChangeEventArgs e = new IntChangeEventArgs(_nbVehicle);
    			OnNewVehicle(this, e);
    			//... Et le reste de ton initialisation
    		}
     
    		//... Et toutes tes autres propriétés, méthodes
     
    	}
    Maintenant, pour tester j'ai fait une form avec juste un bouton "Button1" et un textBox "textBox1". Quand je clique sur le bouton, ça me crée un nouveau véhicule (qui ne sert à rien ici). Dans l'initialisation de la form, j'attache l'évènement à une procédure qui met le nombre de véhicules dans la textBox.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    	public partial class MainForm : Form
    	{
    		public MainForm()
    		{
    			//
    			// The InitializeComponent() call is required for Windows Forms designer support.
    			//
    			InitializeComponent();
     
    			//
    			// TODO: Add constructor code after the InitializeComponent() call.
    			//
    			Vehicule.OnNewVehicle += new Vehicule.NewVehicleEventHandler(Vehicule_OnNewVehicle);
    		}
     
    		void Vehicule_OnNewVehicle(object sender, IntChangeEventArgs e)
    		{
    			textBox1.Text = e.IntValue.ToString();
    		}
     
    		void Button1Click(object sender, EventArgs e)
    		{
    			Vehicule v = new Vehicule();
    		}
    	}
    Et voilà, ça marche !
    « Compter en octal, c’est comme compter en décimal, si on n’utilise pas ses pouces » - Tom Lehrer
    « Il est assez difficile de trouver une erreur dans son code quand on la cherche. C’est encore bien plus dur quand on est convaincu que le code est juste. » - Steve McConnell

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2012
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2012
    Messages : 35
    Points : 27
    Points
    27
    Par défaut
    merci beaucoup

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Création de controles à l'execution et géstion de leurs evenements
    Par Acrobat dans le forum VB 6 et antérieur
    Réponses: 11
    Dernier message: 18/08/2006, 17h36
  2. [Composant] création d'evenement.
    Par Nicolos_A dans le forum Delphi
    Réponses: 9
    Dernier message: 04/06/2006, 07h27
  3. création d'evenements personnalisés
    Par chicore dans le forum Langage
    Réponses: 1
    Dernier message: 02/06/2006, 21h22
  4. [API win32 sans MFC] Création textbox et evenement bouton
    Par dacid dans le forum Bibliothèques
    Réponses: 2
    Dernier message: 17/05/2006, 11h03
  5. Création d'un evenement/interruption
    Par cauriera dans le forum MFC
    Réponses: 12
    Dernier message: 09/03/2006, 11h12

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo