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

Résolu
Anonyme1234_7288 Messages postés 64 Date d'inscription   Statut Membre Dernière intervention   -  
 Utilisateur anonyme - 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

Utilisateur anonyme
 
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 64 Date d'inscription   Statut Membre Dernière intervention  
 
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
Utilisateur anonyme
 
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
Utilisateur anonyme
 
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 64 Date d'inscription   Statut Membre Dernière intervention   > Utilisateur anonyme
 
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
Utilisateur anonyme
 
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 64 Date d'inscription   Statut Membre Dernière intervention  
 
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
Utilisateur anonyme > Anonyme1234_7288 Messages postés 64 Date d'inscription   Statut Membre Dernière intervention  
 
Elles sont dans le message
0
Anonyme1234_7288 Messages postés 64 Date d'inscription   Statut Membre Dernière intervention   > Utilisateur anonyme
 
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
Utilisateur anonyme
 
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 64 Date d'inscription   Statut Membre Dernière intervention  
 
Merci beaucoup de ton aide, sa marche!!!
0
Utilisateur anonyme
 
De rien
0