none
Passer d'un form à l'autre en conservant le contenu des box RRS feed

  • Discussion générale

  • Bonjour,

    Je tente actuellement de créer un programme pour mon stage dans le domaine de la course automobile.
    Et je rencontre un problème au niveau du passage d'un form à l'autre je m'explique :

    Le but du programme est d'utiliser les données de consommation de la voiture, longueur du circuit, vitesse moyenne, etc .. pour déterminer plus ou moins efficacement à quel moment venir ravitailler.
    Il y a pas mal à faire et j'ai choisi d'utiliser Visual Studio (Windows Form) pour pouvoir créer une application .exe facile d'utilisation au final malgré le fait que je ne connaisse pas très bien ce programme ni le langage C# donc je galère un peu mais j'ai réussi à surmonter les problèmes rencontrés jusque là.. tous sauf ce passage d'un form à l'autre

    J'ai mis sur le côté gauche de mon programme les boutons "Données" "Calcul" et "Temps" chacun donnant sur un Form différent.
    Il est évident que le premier regroupe tout ce qui est donnée donc la consommation moyenne, la longueur du circuit et d'autres informations toutes recueillies dans des textbox et combobox , la form calcul n'est pas encore utilisée pour le moment mais me sera utile par la suite dans mon idée et la form Temps contient une listbox qui contiendra tous les temps de chaque tour les uns à la suite des autres avec une estimation du carburant restant dans le réservoir et l'une ou l'autre info supplémentaire.

    Le soucis que j'ai est que lorsque par exemple je remplis les Box de la form Données et que j'utilise un bouton avec ce code :

    Form3 Temps = new Form3();
    Temps.Show();
    this.Hide();
    pour passer à la Form Temps, et qu'ensuite je fais pareil dans l'autre sens pour revenir à la Données toutes les Box précédemment remplies ont été réinitialisées... alors que j'utilise bien le .Hide et non le .Close... Et du coup je pense que je ne peux pas faire passer les données d'une form à l'autre non plus vu qu'elles sont effacées à chaque fois..

    Voilà j'espère avoir été assez claire,
    Je vous remercie d'avance

     

    vendredi 10 mai 2019 14:14

Toutes les réponses

  • Bonjour,

    Il y a aura deux aspects à régler :

    Avoir donné un nom, Temps, au formulaire appelé, est un bon début.

    Dans Form3 (à supposer qu'on ne donne pas un nom plus explicite à cette classe), il faudra donner la bonne accessibilité (par exemple public) aux données auxquelles on veut accéder.

    Une possibilité est de remplacer, dans Form3.Designer.cs, private par public devant la déclaration du contrôle ou champ concerné.

    Une autre est d'utiliser une propriété pour y donner accès. C'est une façon de faire plus propre, mais qui demande d'assimiler la notion de propriété (get, set).


    • Modifié Gloops dimanche 9 juin 2019 11:13
    dimanche 9 juin 2019 11:11