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

Windows Forms Discussion :

[C#][DÉBUTANT]faire bouger un objet / utiliser un timer


Sujet :

Windows Forms

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Août 2006
    Messages
    23
    Détails du profil
    Informations personnelles :
    Âge : 32
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2006
    Messages : 23
    Par défaut [C#][DÉBUTANT]faire bouger un objet / utiliser un timer
    Bonjour, je me présente

    je suis étudiant, j'ai 13 ans et j'adore l'informatique XD(ne riez pas )
    (c'est pas grand chose mais c'est toujours ca )

    ha oui, j'ai failli oublié... comme compilateur, j'utilise visual studio C# (la version gratuite

    Voila, je voudrais vous demander (probablement une question idiote )
    comment faire bouger une objet : je m'explique
    - ce que je voudrais faire (juste pour voir )c'est que quand je clique sur la touche "g" de mon clavier, le boutton1(ou n'importe quel autre objet:picturebox,textbox,ect si cela est possible bien sûr )se deplace vers la gauche
    -Maintenant, le timer .... esxemple :je voudrais que toute les 5 seconde, au lieu d'y avoir "0"dans mon label1, il s'y ajoute 1 (vous comprenez?? )

    j'èspere que je me susi bien expliqué et je suis tout "ouïe" a vos indications XD

    PS: ne faite pas atention aux faute d'orthographe

  2. #2
    Membre émérite Avatar de cubitus91
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2004
    Messages
    726
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 726
    Par défaut
    Salut,
    Pour le timer avec le Label:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    private void timer1_Tick(object sender, System.EventArgs e)
    		{
    		intVarTimer += 1;
    		label1.Text = Convert.ToString(intVarTimer);
    		}
    IntVarTimer est un Int donc tu le déclare :

    tu oublies pas de mettre le timer enable pour valider que cela marche.


    Pour le déplacement de control:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    this.label1.Location = new System.Drawing.Point(72, 48);
    Les valeurs sont les valeurs X et y.

    Cdt

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Août 2006
    Messages
    23
    Détails du profil
    Informations personnelles :
    Âge : 32
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2006
    Messages : 23
    Par défaut timer
    j'ai testé tes codes (même si je croyais que ca ne marcherais pas. sait-on jamais^^ apres tout, je ne suis qu'un débutant XD)

    mais ton exemple pour le timer, ne fais que mettre 1 dans le label...
    il fait comme si j'aurais fais "mettre dans la propriété.text de mon label "0"
    et dans mon code source, j'aurais indiqué label1.text="1" "
    tu comprend??
    peut etre est ce moi (j'ai bien mis true dans la proprité enabled )mais a mon avis, c'est le timer qui ne se reset pas ^^ (j'en suis même sur XD)
    et qu'il n'y a pas d'interval entre les 2 exécution. si tu/vous pourriez m'expliquer un peu plus le timer... j'en serait R.A.V.I

    mais je te remercie quand même pour changer la position ^^ je chercherais un peu plus excatement ce que je voudrais faire avec cette fonction mais ce piti morceau de code m'aidera

  4. #4
    Membre émérite Avatar de cubitus91
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2004
    Messages
    726
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 726
    Par défaut
    Citation Envoyé par Rafsky
    j'ai testé tes codes (même si je croyais que ca ne marcherais pas. sait-on jamais^^ apres tout, je ne suis qu'un débutant XD)

    mais ton exemple pour le timer, ne fais que mettre 1 dans le label...
    il fait comme si j'aurais fais "mettre dans la propriété.text de mon label "0"
    et dans mon code source, j'aurais indiqué label1.text="1" "
    tu comprend??
    peut etre est ce moi (j'ai bien mis true dans la proprité enabled )mais a mon avis, c'est le timer qui ne se reset pas ^^ (j'en suis même sur XD)
    et qu'il n'y a pas d'interval entre les 2 exécution. si tu/vous pourriez m'expliquer un peu plus le timer... j'en serait R.A.V.I

    mais je te remercie quand même pour changer la position ^^ je chercherais un peu plus excatement ce que je voudrais faire avec cette fonction mais ce piti morceau de code m'aidera
    tu as pas du comprendre ma démarche car j ai fais l exemple pour te donner le code est il marche !!



    Tu as pu mettre l évenement quand le timer TICK ( se déclenche ), pour tester si ton timer se déclenche tu peux mettre un messagebox.show("Timer 1 se déclenche");

    Pour info , l ' événement est dans les propriétés ( l éclaire ) .

    Cdt
    Pour le mouvement des controles c est bon !!

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Août 2006
    Messages
    23
    Détails du profil
    Informations personnelles :
    Âge : 32
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2006
    Messages : 23
    Par défaut
    je n'ai jamais contesté le fais qu'il se mette en route mais se remet t'il a zéro?? (si il se remet a zéro, je suis un crétin fini XD) si il ne se remet pas a zéro dans ton exmple, pourrait tu me montrer un exemple montrant :

    -le timer ( l'interval est de 5 sec )
    -une fois arriver a son terme, il ajoute 1 au nombre du label
    -et se remet en route juste apres ces 5 sec

  6. #6
    Membre émérite Avatar de cubitus91
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2004
    Messages
    726
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 726
    Par défaut
    Salut,

    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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
     
    using System;
    using System.Drawing;
    using System.Collections;
    using System.ComponentModel;
    using System.Windows.Forms;
    using System.Data;
     
    namespace WindowsApplication4
    {
    	/// <summary>
    	/// Description résumée de Form1.
    	/// </summary>
    	public class Form1 : System.Windows.Forms.Form
    	{
    		private System.Windows.Forms.Timer timer1;
    		private System.Windows.Forms.Label label1;
    		private System.ComponentModel.IContainer components;
    		private System.Windows.Forms.NotifyIcon notifyIcon1;
    int intVarTimer;
    		public Form1()
    		{
    			//
    			// Requis pour la prise en charge du Concepteur Windows Forms
    			//
    			InitializeComponent();
     
    			//
    			// TODO : ajoutez le code du constructeur après l'appel à InitializeComponent
    			//
    		}
     
    		/// <summary>
    		/// Nettoyage des ressources utilisées.
    		/// </summary>
    		protected override void Dispose( bool disposing )
    		{
    			if( disposing )
    			{
    				if (components != null) 
    				{
    					components.Dispose();
    				}
    			}
    			base.Dispose( disposing );
    		}
     
    		#region Code généré par le Concepteur Windows Form
    		/// <summary>
    		/// Méthode requise pour la prise en charge du concepteur - ne modifiez pas
    		/// le contenu de cette méthode avec l'éditeur de code.
    		/// </summary>
    		private void InitializeComponent()
    		{
    			this.components = new System.ComponentModel.Container();
    			System.Resources.ResourceManager resources = new System.Resources.ResourceManager(typeof(Form1));
    			this.timer1 = new System.Windows.Forms.Timer(this.components);
    			this.label1 = new System.Windows.Forms.Label();
    			this.notifyIcon1 = new System.Windows.Forms.NotifyIcon(this.components);
    			this.SuspendLayout();
    			// 
    			// timer1
    			// 
    			this.timer1.Enabled = true;
    			this.timer1.Interval = 500;
    			this.timer1.Tick += new System.EventHandler(this.timer1_Tick);
    			// 
    			// label1
    			// 
    			this.label1.Location = new System.Drawing.Point(72, 48);
    			this.label1.Name = "label1";
    			this.label1.TabIndex = 0;
    			this.label1.Text = "0";
    			// 
    			// notifyIcon1
    			// 
    			this.notifyIcon1.Icon = ((System.Drawing.Icon)(resources.GetObject("notifyIcon1.Icon")));
    			this.notifyIcon1.Text = "notifyIcon1";
    			this.notifyIcon1.Visible = true;
    			// 
    			// Form1
    			// 
    			this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
    			this.ClientSize = new System.Drawing.Size(560, 266);
    			this.Controls.Add(this.label1);
    			this.Name = "Form1";
    			this.Text = "Form1";
    			this.Load += new System.EventHandler(this.Form1_Load);
    			this.ResumeLayout(false);
     
    		}
    		#endregion
     
    		/// <summary>
    		/// Point d'entrée principal de l'application.
    		/// </summary>
    		[STAThread]
    		static void Main() 
    		{
    			Application.Run(new Form1());
     
    		}
     
     
    		private void timer1_Tick(object sender, System.EventArgs e)
    		{
    		intVarTimer += 1;
    		label1.Text = Convert.ToString(intVarTimer);
    		this.label1.Location = new System.Drawing.Point(72, 48);
    		}
     
    		private void Form1_Load(object sender, System.EventArgs e)
    		{
    			timer1.Interval = 5000; 
    		}
     
     
     
    	}
    }
    Essaie ca !!
    CDT

  7. #7
    Membre émérite Avatar de cubitus91
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2004
    Messages
    726
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 726
    Par défaut
    Tiens voila le projet !!

    Pièce jointe 4602

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Août 2006
    Messages
    23
    Détails du profil
    Informations personnelles :
    Âge : 32
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2006
    Messages : 23
    Par défaut
    Super! merci a toi

    je vais examiner ce code de plus pres mais il marche, c'est l'essentiel XD

  9. #9
    Membre émérite Avatar de cubitus91
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2004
    Messages
    726
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 726
    Par défaut
    De rien ,
    Ca sera plus simple !!
    Tu pourras rentré dans le détails pour le timer en cherchant sur le net au niveau de la classe sur MSDN.
    Cdt et bonne prog

  10. #10
    Membre Expert Avatar de Mose
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 143
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 143
    Par défaut
    Sinon pour l'animation de ton bouton, il te faudra aussi utiliser un timer...

  11. #11
    Membre averti
    Profil pro
    Inscrit en
    Août 2006
    Messages
    23
    Détails du profil
    Informations personnelles :
    Âge : 32
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2006
    Messages : 23
    Par défaut
    c'est pour ca que j'ai demandé les 2 en même temps

  12. #12
    Membre chevronné
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    324
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 324
    Par défaut
    Salut,
    ton label n'affiche que 1 tout simplement parce que tu as mis la DECLARATION de la variable "int intVarTimer;" dans la sub de ton timer la solution est que tu doit mettre sa declaration en private dans ta classe (pour que la valeur ne soit pas réinitialiser a chaque passage dans le timer).
    Quand au fonctionnement des timer, c'est simple, ils ont 2 propriétés importantes :
    -Enabled (que tu met a true pour que le timer ne cesse de se declencher et a false si tu souhaite arreter le traitement qu'il effectue dans son corps)
    -Interval (le temps qui separe 2 declenchement du timer ce temps est exprimer en millisecondes)

    pour plus d'infos, utilise la msdn

  13. #13
    Membre averti
    Profil pro
    Inscrit en
    Août 2006
    Messages
    23
    Détails du profil
    Informations personnelles :
    Âge : 32
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2006
    Messages : 23
    Par défaut
    Oui ^^ ca doit etre ca mon erreur
    merci pour c'est petit complément (même si je le savais deja XD mais c'est l'atention qui compte :p )

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

Discussions similaires

  1. Faire bouger un objet
    Par bapt298 dans le forum OpenGL
    Réponses: 3
    Dernier message: 17/05/2012, 16h57
  2. Réponses: 2
    Dernier message: 10/12/2007, 11h13
  3. Problème pour faire bouger deux objets simultanement
    Par LinuxUser dans le forum AWT/Swing
    Réponses: 13
    Dernier message: 22/04/2007, 23h19
  4. Faire bouger un objet en OpenGL
    Par bikini42 dans le forum OpenGL
    Réponses: 6
    Dernier message: 21/01/2007, 15h34
  5. Réponses: 2
    Dernier message: 05/07/2005, 17h40

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