IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

Fenêtre ne disparait pas.


Sujet :

C#

  1. #1
    Membre habitué
    Homme Profil pro
    Inscrit en
    Février 2006
    Messages
    199
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 199
    Points : 164
    Points
    164
    Par défaut Fenêtre ne disparait pas.
    Bonjour,

    Voici mon soucis :

    J'ai une fenêtre principale, avec un menu de configuration qui ouvre une fenêtre permettant de saisir un mot de passe afin d'accéder aux configurations de l'application. Après saisie du mot de passe et de la validation via un simple bouton OK une nouvelle fenêtre apparait présentant les configurations.

    Mais voila, une fois les données validées, la fenêtre "disparait" : je m'explique : elle a disparu mais le rendu graphique de cette fenêtre est encore là. On peut voir encore la fenêtre superposée sur la fenêtre principale.

    Où le soucis ? Telle est la question que je vous pose. Merci d'avance.

  2. #2
    Expert confirmé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2009
    Messages
    2 022
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2009
    Messages : 2 022
    Points : 5 455
    Points
    5 455
    Par défaut
    C'est presque du harry potter !

    La comme ca c'est difficile, peut être une capture d'ecran serait plus explicite!
    Sinon au hasard un problème de refresh du au fait que ta fenêtre principal fait un traitement, ou bien attend un retour. Pour faire "disparaitre" la fenêtre tu fais comment? ( et accessoirement comment tu l'as d'abord invoquée)

  3. #3
    Membre habitué
    Homme Profil pro
    Inscrit en
    Février 2006
    Messages
    199
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 199
    Points : 164
    Points
    164
    Par défaut
    En pièce jointe l'imprim écran. En fait c'est une photo que j'ai prise avec mon téléphone car l'application tourne sur un terminal tactile.

    Sinon pour fermer cette fenêtre de configuration j'appelle un simple Close().

    En fait c'est une application que je reprends suite au départ d'un collègue. Donc il y a des choses que j'ai du mal à comprendre dans la façon de faire. De plus c'est la 1er fois que je fais du C#.

    J'ai remarqué qu'il y a une boucle qui dit, que tant qu'on ne saisie rien au clavier il appelle la fonction Application.doEvents() et un Thread.sleep(20).

    Je ne sais pas si ca peut aider.
    Images attachées Images attachées  

  4. #4
    Expert confirmé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2009
    Messages
    2 022
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2009
    Messages : 2 022
    Points : 5 455
    Points
    5 455
    Par défaut
    Citation Envoyé par Sancho_54 Voir le message
    En pièce jointe l'imprim écran. En fait c'est une photo que j'ai prise avec mon téléphone car l'application tourne sur un terminal tactile.
    J'ai remarqué qu'il y a une boucle qui dit, que tant qu'on ne saisie rien au clavier il appelle la fonction Application.doEvents() et un Thread.sleep(20).
    En gros ca boucle tout le temps! -_-
    Apres tout dépend d'ou se trouve cette boucle, si c'est un thread séparé ou si c'est dans le thread du main. Bon le Application.doEvents devrait effacer le tout...Du coup peut être que le problème c'est que pour une raison x ou y cette boucle ne tourne plus.

    Peut etre avec du code on aura plus d'indice! En tout cas j'ai pas trop d'idée .

  5. #5
    Membre habitué
    Homme Profil pro
    Inscrit en
    Février 2006
    Messages
    199
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 199
    Points : 164
    Points
    164
    Par défaut
    Compliqué compliqué de t'expliquer le code du programme et si je te le poste j'ai bien peur que tu ne comprennes pas trop car c'est un vrai chantier.

    J'ouvre la fenetre en faisant :

    MaFenetre fenetre = new MaFenetre();
    fenetre.showDialog();

    Enfin bref, compliqué car son programme est un vrai chantier, mais pas possible sans commentaire en plus.

  6. #6
    Expert éminent Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Points : 7 903
    Points
    7 903
    Par défaut
    Le problème vient probablement du fait qu'il y un traitement long après le ShowDialog().

    Peut-être qu'un Application.DoEvents() juste après le ShowDialog permettrait de faire disparaitre rapidement la Form.

    Par ailleurs, la boucle contenant "Application.doEvents() et un Thread.sleep(20)" est (sauf cas trèsparticulier) une anomalie dans une programmation de type événementiel.
    " Le croquemitaine ! Aaaaaah ! Où ça ? " ©Homer Simpson

  7. #7
    Membre averti
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2008
    Messages
    231
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2008
    Messages : 231
    Points : 359
    Points
    359
    Par défaut
    Es ce que dans des events branchez sur le unload ou un autre évènement de fin ne prendrai pas trop de temps ?
    "Une belle citation est un diamant au doigt de l'homme d'esprit et un caillou dans la main d'un sot."
    Joseph Roux

Discussions similaires

  1. Réponses: 6
    Dernier message: 09/05/2009, 14h23
  2. Blocage tant qu'une fenêtre n'est pas fermé
    Par lodan dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 02/09/2006, 07h40
  3. [C#] Fenêtre ne remonte pas du a l'AutoPostBack
    Par Oberown dans le forum ASP.NET
    Réponses: 2
    Dernier message: 25/04/2006, 14h32
  4. [MFC] Menu flottant qui ne disparait pas
    Par EuZah dans le forum MFC
    Réponses: 4
    Dernier message: 23/01/2006, 16h59
  5. Maximiser fenêtre ne marche pas
    Par sandrinec dans le forum Composants VCL
    Réponses: 2
    Dernier message: 12/06/2003, 12h02

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo