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 :

C# Mettre les objets a jour


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 29
    Par défaut C# Mettre les objets a jour
    Bonjour tout le monde,

    Voila j'ai un petit souci, c'est que lorsque je click sur le bouton 'Calculer', les differentes textBox ('txtCrcHexa, txtCrcFinal.....') ne se mette pas à jour, elle reste vide :

    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
     //private HashManager m_hm = new HashManager()
           public void CalcFCS(string sCrcHexa, string sLsb, string sMsb, string sSendData, string sCrcFinal)
            {
                try
                {
                    uint uFlags = this.PackCurrentFlags();
     
                    byte[] pbData = HexStringToByteArray(sCrcHexa);
     
                    m_hm.InitHashes();
                    m_hm.UpdateHashes(pbData, (ulong)pbData.Length, true);
                    m_hm.FinalizeHashes();
     
                    //Permet d'avoir le FCS 16bit
                    sCrcFinal = ReHashTools.ReportHashes(m_hm, uFlags);
     
                    //Permet d'avoir juste les deux octets du MSB
                    StringBuilder sbMSB = new StringBuilder(sCrcFinal, 2, 2, 0);
                    sMsb = sbMSB.ToString();
     
                    //Permet d'avoir juste les deux octets du LSB
                    StringBuilder sbLSB = new StringBuilder(sCrcFinal, 0, 2, 0);
                    sLsb = sbLSB.ToString();
     
                    // Tres efficace, permet de copier la valeur du crc a calculer...
                    sSendData =  sCrcHexa.ToUpper() + " " + sMsb.ToUpper() + " " + sLsb.ToUpper() + " " + "7E";
                }
     
                catch (Exception)
                {
                    MessageBox.Show("Vérifier votre chaine Hexa", "Erreur", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                }
            }
    L'evenement Qui appele la fonction(c'est un boutton) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     //private Fonction m_fc = new Fonction();
           private void bntCalculer_Click(object sender, EventArgs e)
            {
                m_fc.CalcFCS(txtCrcHexa.Text, txtLSB.Text, txtMSB.Text, txtSendData.Text, txtCrcFinal.Text);
            }
    J'informe aussi que la fonction est située dans un autre fichier que celui de l'evenement.

    Merci de votre aide a bientôt!

  2. #2
    Expert confirmé
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Par défaut
    Il faut que tu passes tes strings par référence avec le mot clé ref.
    Je rappelle que la classe String malgré le fait que ce soit une classe, se comporte comme un type valeur, en effet c'est un type dit immuable.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 29
    Par défaut
    Salut,

    Eh bien je viens d'essayer mais sa ne marche pas, j'ai un message d'erreur,

    : Error 'A property or indexer may not be passed as an out or ref '

    SI tu pouvait me dire qu'elle erreur que je vient de faire merci ()

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
            private void bntCalculer_Click(object sender, EventArgs e)
            {
                m_fc.CalcFCS(ref txtCrcHexa.Text, ref txtLSB.Text, ref txtMSB.Text, ref txtSendData.Text, ref txtCrcFinal.Text);
            }
    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
            public void CalcFCS(ref string sCrcHexa, ref string sLsb, ref string sMsb, ref string sSendData, ref string sCrcFinal)
            {
                try
                {
                    uint uFlags = this.PackCurrentFlags();
     
                    byte[] pbData = HexStringToByteArray(sCrcHexa);
     
                    m_hm.InitHashes();
                    m_hm.UpdateHashes(pbData, (ulong)pbData.Length, true);
                    m_hm.FinalizeHashes();
     
                    //Permet d'avoir le FCS 16bit
                    sCrcFinal = ReHashTools.ReportHashes(m_hm, uFlags);
     
                    //Permet d'avoir juste les deux octets du MSB
                    StringBuilder sbMSB = new StringBuilder(sCrcFinal, 2, 2, 0);
                    sMsb = sbMSB.ToString();
     
                    //Permet d'avoir juste les deux octets du LSB
                    StringBuilder sbLSB = new StringBuilder(sCrcFinal, 0, 2, 0);
                    sLsb = sbLSB.ToString();
     
                    // Tres efficace, permet de copier la valeur du crc a calculer...
                    sSendData =  sCrcHexa.ToUpper() + " " + sMsb.ToUpper() + " " + sLsb.ToUpper() + " " + "7E";
                }

  4. #4
    Expert confirmé
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Par défaut
    Hum...

    Au lieu du text de tes textbox tu ne peux pas passer tes TextBox ?

  5. #5
    Expert confirmé Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Par défaut
    Au lieu de ce code qui donne une erreur de compil (on ne peut pas passer une property par ref):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MyObj.MyProc(ref MyTextBox.text) ;
    écrire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    string TempString=MyTextBox.text
    MyObj.MyProc(ref TempString) ;
    MyTextBox.text=TempString ;

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 29
    Par défaut
    Merci Graffito, ta methode marche parfaitement.

    Je te remerci.

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 14/06/2013, 10h29
  2. Réponses: 4
    Dernier message: 15/02/2010, 21h41
  3. Réponses: 4
    Dernier message: 08/01/2010, 17h16
  4. [COM] Mettre les données en colonne
    Par kaking dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 29/12/2009, 09h31
  5. Mettre des textures et des couleurs sur les objets
    Par MaTtaW dans le forum PhysX et APEX
    Réponses: 5
    Dernier message: 31/07/2009, 17h42

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