Redémarrer un programme d'application bureau C# sans fermer la fenêtre

Résolu/Fermé
Anonyme1234_7288 Messages postés 65 Date d'inscription samedi 14 mars 2020 Statut Membre Dernière intervention 8 avril 2021 - 18 mars 2021 à 20:14
Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 - 20 mars 2021 à 19:24
Bonjour,

J'aimerais savoir comment je peux recommencer un programme bureau C# depuis le début sans fermer la fenêtre.
A voir également:

7 réponses

Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 931
18 mars 2021 à 21:24
C'est à dire?
  • sans cliquer sur la "croix", mais la fenêtre peut s'éteindre et se redémarrer?
  • la fenêtre n'est jamais éteinte et les données et algo sont remis à zéro?
  • autre?

0
Anonyme1234_7288 Messages postés 65 Date d'inscription samedi 14 mars 2020 Statut Membre Dernière intervention 8 avril 2021
18 mars 2021 à 21:28
En fait ce que je voudrais c'est que dans mon programme il y ait un bouton et que lorsque je clique dessus il revient comme il était au début, donc comme avant que l'utilisateur interagisse avec le programme.
0
Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 931
19 mars 2021 à 08:14
Je comprends donc que la fenêtre peut s'éteindre et redémarrer.
Dans ce cas, dans le constructeur de la form, tu fais une recherche sur les processus actuels, dont le nom correspond à ton programme.
S'il y en à plus qu'un tu tues les plus anciens, pour ne conserver que le plus récent.

Ceci sert à n'avoir qu'une seule instance de ton programme et cette instance est la dernière lancée.


Dans le code de ton bouton, tu lances une nouvelle instance de ton programme.

0
Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 931
19 mars 2021 à 09:38
Le code pour tuer mon programme de test qui s'appelle "Test Winform"
        public Form1()
        {
            Process[] ps = Process.GetProcessesByName("Test Winform");
            for (int i = 0; i < ps.Length - 1; i++)//le plus récent est le dernier du tableau
                ps[i].Kill();


            InitializeComponent();
            //etc




Attention, tu ne peux pas l'essayer avec Visual Studio, en effet quand on exécute un code depuis VS, le processus est hébergé par VS, du coup si tu lances une fois l'exe, puis VS il n'y a qu'un processus avec le nom du projet.

Et le code pour lancer une nouvelle application
            Process.Start("Test Winform.exe");
0
Anonyme1234_7288 Messages postés 65 Date d'inscription samedi 14 mars 2020 Statut Membre Dernière intervention 8 avril 2021 > Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024
19 mars 2021 à 17:18
En fait je ne veux pas que la fenêtre ce ferme, je veux seulement un code pour que mon programme recommence depuis le début sans fermer la fenêtre
0
Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 931
19 mars 2021 à 18:05
Dans ce cas là, quand je te demande si la fenêtre peut se refermer, tu dis non.....

Si on te demande de détailler et on te pose des questions précises c'est que ta demande n'est pas claire.

Et comme à des questions précises, tu réponds encore vaguement, et ben j'ai supposé, qu'aux 2 questions c'est oui....



A part l'appel à InitialiseCompomnent, as tu du code dans le constructeur?
As tu du code dans le load?
As tu du code dans le shown?
As tu des binding?
L'utilisateur peut il saisir des données? Agir sur des contrôles?
0
Anonyme1234_7288 Messages postés 65 Date d'inscription samedi 14 mars 2020 Statut Membre Dernière intervention 8 avril 2021
19 mars 2021 à 18:23
En fait mon programme est une application de bureau en C#, il consiste à aller chercher des donner dans un fichier Excel et il les exporte dans des comboBox. Mais lorsque l’utilisateur interagit d’une certaine manière avec le programme, ce dernier m’affiche une erreur, et je suis désolé pour mes réponses, merci de m’avoir averti, dorénavant je vais plus développé. Donc recommençons du début, quelle sont tes questions pour m’aider
0
Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 931 > Anonyme1234_7288 Messages postés 65 Date d'inscription samedi 14 mars 2020 Statut Membre Dernière intervention 8 avril 2021
19 mars 2021 à 20:05
Elles sont dans le message
0
Anonyme1234_7288 Messages postés 65 Date d'inscription samedi 14 mars 2020 Statut Membre Dernière intervention 8 avril 2021 > Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024
19 mars 2021 à 20:36
Oui, j'ai d'autre code dans le constructeur, aussi, je ne sais pas ce qu'est le load, le shown et le binding. Finalement, oui, l'utilisateur peut agir sur les contrôles, il peut sélectionner les valeurs dans les comboBox. Mais à part les comboBox, l'utilisateur ne peut saisir aucune autre donnée.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 931
19 mars 2021 à 20:44
Mais lorsque l’utilisateur interagit d’une certaine manière avec le programme, ce dernier m’affiche une erreur,

Ne serait pas plus judicieux de chercher la raison de cette erreur et de faire en sorte
  • soit de la corriger?
  • soit d'empêcher qu'elle se produise?


Mais si tu veux tout réinitialiser:
  • tout ce qui est dans le constructeur, sauf l'appel à InitialiseCompoment doit être mis dans un méthode. Pour simplifier la suite, je vais l'appeler
    private void Init() 
  • Dans le constructeur, tu appelles InitialiseComponment puis Init().
  • Dans ton bouton,
    • s'il y a un lien de données entre tes combobox et le fichier excel, tu le casses
    • s'il n'y a pas de lien, tu vides les combobox
    • si les interactions avec les combox ont une influence sur d'autres controles, tu remets ces controles dans leur état d'origine
    • tu appelles Init

0
Anonyme1234_7288 Messages postés 65 Date d'inscription samedi 14 mars 2020 Statut Membre Dernière intervention 8 avril 2021
20 mars 2021 à 19:09
Merci beaucoup de ton aide, sa marche!!!
0
Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 931
20 mars 2021 à 19:24
De rien
0