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
Utilisateur anonyme - 20 mars 2021 à 19:24
A voir également:
- Redémarrer un programme d'application bureau C# sans fermer la fenêtre
- Application mobile - Guide
- Raccourci redémarrer pc - Guide
- Application gps sans internet - Guide
- Fermer un programme de force - Guide
- Desinstaller application windows - Guide
7 réponses
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?
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.
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.
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.
Le code pour tuer mon programme de test qui s'appelle "Test Winform"
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
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");
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?
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?
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
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionMais 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