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 :

Refresh array label control


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    296
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 296
    Par défaut Refresh array label control
    Bonjour,
    J'ai crée un array de Label
    mais lorsque je le mets à jour la donnée n'est pas rafraichie.
    Je sais que la donnée est écrite dans le contrôle car je récupère cette information pour la réécrire dans une textbox de test.

    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
    public System.Windows.Forms.Label[] LblServerTime;
    private void CreationArray()
    {
                LblServerTime = new System.Windows.Forms.Label[ServerInfo.NumberOfServerInstalled];
    ....
                    LblServerTime[i] = new System.Windows.Forms.Label();
                    LblServerTime[i].BackColor = System.Drawing.Color.Transparent;
                    LblServerTime[i].Size = new System.Drawing.Size(SizeLblServerTime.X, SizeLblServerTime.Y);
                    LblServerTime[i].AutoSize = false;
                    LblServerTime[i].Location = new System.Drawing.Point(PositionLblServerTime.X, PositionLblServerTime.Y);
                    LblServerTime[i].Name = "LblServerTime" + i.ToString();
                    LblServerTime[i].TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
                    LblServerTime[i].ForeColor = Color.Black;
                    LblServerTime[i].Font = new Font("Arial", (float)36.0, FontStyle.Bold);
                    Form1.ActiveForm.Controls.Add(LblServerTime[i]);
                    LblServerTime[i].Parent = Form1.ActiveForm;
    }
     
    private void UpdateArray()
    {
                LblServerTime[0].Text = DateTime.UtcNow.Second.ToString();
                LblServerTime[0].Focus();
                textBox1.Text = LblServerTime[0].Text;
                label1.Text = DateTime.UtcNow.Second.ToString();
     
                LblServerTime[0].Refresh();
                LblServerTime[0].Invalidate();
                LblServerTime[0].Update();
                Application.DoEvents();
                this.Refresh();
    }
    Je pense avoir fait le tour des fonctions de rafraichissement et rien ne marche. Quelqu'un aurait-il une idée ?
    Merci

  2. #2
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Par défaut
    Bonjour

    - Merci d'utiliser les base CODE (bouton # sur l'éditeur de message)

    - Vérfier sous débugger la valeur de propriété Visible des Labels en question.

    - Les lignes suivantes ne servent, selon toute probabilité, strictement à rien ici :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    LblServerTime[0].Focus();
    ....
    LblServerTime[0].Refresh();
    LblServerTime[0].Invalidate();
    LblServerTime[0].Update();
    Application.DoEvents();
    this.Refresh();

  3. #3
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    296
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 296
    Par défaut
    Merci pour la réponse :

    Les labels sont visibles car je vois le texte écrit par défaut à l'initialisation.
    Quant aux lignes focus et autres , ce sont mes dernières cartouches car je ne trouve pas le moyen de rafraichir mes labels

  4. #4
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Par défaut
    La méthode UpdateArray est appelé dans le thread principal ?

    Tu as vérifié via un BP que tu rentres bien dedans ?

    Où est initialisé le tableau de Label ? tu es sur que ne le réinitialises pas ?

  5. #5
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    296
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 296
    Par défaut
    Oui la méthode UpdateArray est appelée dans le thread principal

    Je passe dedans car je vois ma textbox qui est rafraichit
    alors que mon label affiche toujours sa valeur d'initialisation

    ...
    LblServerTime[0].Text = DateTime.UtcNow.Second.ToString();
    textBox1.Text = LblServerTime[0].Text;
    ...

    voila pourquoi je ne comprends pas

  6. #6
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Par défaut
    Citation Envoyé par sdecorme Voir le message
    Oui la méthode UpdateArray est appelée dans le thread principal

    Je passe dedans car je vois ma textbox qui est rafraichit
    alors que mon label affiche toujours sa valeur d'initialisation
    Ouais, je me pose la question si tu adresses bien la bonne instance du label.
    Peux tu poster le code complet de la méthode d'initialisation du tableau ?

Discussions similaires

  1. Refresh sur certains controles seulement
    Par Niaouli02 dans le forum IHM
    Réponses: 2
    Dernier message: 15/02/2008, 22h21
  2. Réponses: 1
    Dernier message: 15/06/2007, 13h13
  3. [VBA-E]Renommer un Control Label via une procédure
    Par Phyanol dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 14/03/2007, 19h27
  4. [C#] Modifier plusieurs controles "Label"
    Par imer33 dans le forum Windows Forms
    Réponses: 5
    Dernier message: 31/10/2006, 21h53
  5. Réponses: 8
    Dernier message: 29/07/2006, 22h31

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