Questions à propos de passage de tableaux entre 2 forms

Résolu
rbidocho Messages postés 41 Date d'inscription jeudi 7 juin 2007 Statut Membre Dernière intervention 15 septembre 2008 - 25 juin 2007 à 21:07
rbidocho Messages postés 41 Date d'inscription jeudi 7 juin 2007 Statut Membre Dernière intervention 15 septembre 2008 - 26 juin 2007 à 08:35
Bonsoir,

D'abord : XP SP1, Framework .Net 1.1, IDE SharpDevelop 1.1

Après : mon  soucis du moment vient du passage de tableau entre 2 forms. Pour cela j'utilise une propriétés dans chaque form pour les transmettre

Dans Form1 j'ai :
            public float[,] TabDonnéesFinale {
                get {
                    return fTabDonnéesFinale;
                }
                set {
                    fTabDonnéesFinale = value;
                }
            }

et dans Form2 j'ai :
        public float[,] TableauValeurs {
            get {
                return fTableauValeurs;
            }
            set {
                fTableauValeurs = value;
            }
        }

Je souhaite passer dans un premier temps le tableau fTabDonnéesFinale dans la form2 à fTableauValeurs.
Pour cela je fais dans Form1 : Form2.TableauValeurs = fTabDonnéesFinale

Puis si les modifs sont acceptées dans Form2, passer fTabValeurs dans Form1 en faisant (Dans Form2) TabDonnéesFinale = fTableauValeurs
Si les modifs ne sont pas acceptées je veux garder dans Form1 le tableau fDonnéesFinales tel qu'il était avant le passage à Form2.

Et c'est là qu'est mon soucis, car si je n'accepte pas les modifs, le tableau fDonnéesFinales dans Form1 après avoir fait des modifs sans les acceptées ressemble à fTableauValeurs de la form2.

Il doit y avoir là dessous une histoire de reférence qui traine, peut être dans mes propriétés mais j'en suis pas sur.

Si vous avez des solutions : MERCI

RB

3 réponses

rbidocho Messages postés 41 Date d'inscription jeudi 7 juin 2007 Statut Membre Dernière intervention 15 septembre 2008
26 juin 2007 à 08:35
J'ai trouvé une solution en espérant qu'elle ne soit pas trop mauvaise :
Mes propriétés deviennent :
* Dans Form1
            public float[,] TabDonnéesFinale {
                get {
                    return fTabDonnéesFinale;
                }
                set {
                    this.fTabDonnéesFinale = new float[value.GetUpperBound(0)+1,value.GetUpperBound(1)+1];
                    Array.Copy(value,fTabDonnéesFinale,(value.GetUpperBound(0)+1)*(value.GetUpperBound(1)+1));
                }
            }

et dans Form2 j'ai :
        public float[,] TableauValeurs {
            get {
                return fTableauValeurs;
            }
            set {
                    this.fTableauValeurs= new float[value.GetUpperBound(0)+1,value.GetUpperBound(1)+1];
                    Array.Copy(value,fTableauValeurs,(value.GetUpperBound(0)+1)*(value.GetUpperBound(1)+1));
            }
        }
3
ricklekebekoi Messages postés 303 Date d'inscription mardi 11 février 2003 Statut Membre Dernière intervention 24 avril 2009 5
26 juin 2007 à 02:47
Quand tu souhaite faire une copie de ton Array, et non un simple passage par référence, il faut faire ainsi par exemple

int[] tab1 =
new
int[] { 1, 2, 3 };

int[] tab2 =
new
int[0];
tab2 =
new
int[tab1.Length];
tab1.CopyTo( tab2, 0 );

Eric
0
rbidocho Messages postés 41 Date d'inscription jeudi 7 juin 2007 Statut Membre Dernière intervention 15 septembre 2008
26 juin 2007 à 06:54
Merci Eric,

mais je crois bien que CopyTo ne s'applique qu'a des tableaux à 1 dimension. moi j'ai des tableaux à 2 dimensions!!

j'avais bien pensé à ça mais les problèmes de dimensions m'ont tout de suite stoppé.

RB
0
Rejoignez-nous