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

Windows Forms Discussion :

Problème d'ouverture de fenêtre (Form.show)


Sujet :

Windows Forms

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    129
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Avril 2004
    Messages : 129
    Points : 103
    Points
    103
    Par défaut Problème d'ouverture de fenêtre (Form.show)
    Bonjour,

    Voilà j'ai un problème lorsque je tente d'ouvrir une form avec la commande .show(). Je n'ai jamais eu ce genre de problème dans le passé alors il doit y avoir quelque chose que j'oublie. Ce qui ce passe lorsque le .Show est executer c'est que ma fenêtre s'ouvre mais c'est comme si elle tombe dans une boucle sans fin. La fenêtre ne répond pas du tout et si je tente de la déplacer elle devienne toute blanche et je suis forcé de la ferme par le Task manager de windows.

    Mon projet est assez simple. Mon programme écoute les message TCP/IP sur un port donnée. Si le message reçu est de type "alarme" je dois alors afficher une fenêtre à l'écran qui indique les proriétés de cette alarme et le responsable peut alors poser des actions sur cette alarme via l'interface.

    J'ouvre déjà plusieurs form dans cette application via le .show et je n'ai pas ce problème. La seul différence avec le cas ou ça ne fonctionne pas c'est que la fenêtre "principale" de mon application n'est pas nécessairement active (focus on). Lorsque mon Client "TCP/IP" reçois un message celui-ci "Raise" un event et c'est dans la procédure attacher à cet Event que mon code d'ouverture de fenêtre ce fait. Mon code ressemble à ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
                Dim newAlarm As frmAlarm
     
                If Not lstAlarm.Contains(AlarmID) Then
                    newAlarm = New frmAlarm
     
                    lstAlarm.Add(AlarmID, newAlarm )
                    newAlarm .Show()                
                Else                
                    newAlarm = lstAlarm(AlarmID)
                    newAlarm .Select()
                End If
    Dans ma fenêtre alarm j'ai pour l'instant aucun code car j'ai tout mis en commentaire. Je ne comprends vraiment pas quel est le problème. J'ai passé une bonne partie de ma journée hier au bureau à tenté de comprendre mais je ne vois pas. Si je mets le même code sur l'action d'un bouton ça fonctione alors je ne comprends pas.

    Merci !

  2. #2
    Membre émérite Avatar de mactwist69
    Homme Profil pro
    Développement VB.NET
    Inscrit en
    Janvier 2007
    Messages
    1 707
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développement VB.NET
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 707
    Points : 2 528
    Points
    2 528
    Par défaut salut
    Salut!

    Apparement je vois pas d erreur dans ce petit bout de code.

    Je pense que le souci est plutot du type Evenementiel. En fait j imagine que c est l action qui creer ta form qui tourne a l infini.

    Dans ta deuxieme Form, dans le load, mets un petit MsgBox("tindin")

    Et tu verras si la fenetre ne s ouvre qu une seul fois.

  3. #3
    Membre expérimenté

    Homme Profil pro
    kiné passionné de dev
    Inscrit en
    Mars 2006
    Messages
    1 570
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : kiné passionné de dev

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 570
    Points : 1 738
    Points
    1 738
    Billets dans le blog
    1
    Par défaut
    Normalement, on évite les messagebox, mais on utilise plutôt les points d'arrêt.

    Sinon, si ta fenêtre reste bloquée, ce n'est peut être pas un problème au niveau du code qui l'ouvre mais au niveau du traitement que fait ta form quand elle s'ouvre.

  4. #4
    Candidat au Club
    Profil pro
    Inscrit en
    Août 2008
    Messages
    8
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 8
    Points : 4
    Points
    4
    Par défaut
    Bonjour,

    Je pense qu'il s'agit d'un problème de thread... Comment tu fais pour "attendre" un message ? Tu utilises probablement un thread indépendant, via un timer ou un processus asynchrone, et il ne faut surtout pas faire de modifications graphiques sur tes formulaires ou contrôles depuis un thread indépendant.

    J'ai eu le même problème récemment car j'utilisais un timer du type system.timers.timer pour intervenir sur des formulaires... Depuis, j'ai opté pour un timer du type system.windows.forms.timer qui est optimisé pour les contrôles et formulaires et ça marche parfaitement.

    Essaie de voir si ta solution n'est pas par là...

    Cordialement,

    Merhandir

Discussions similaires

  1. Problème d'ouverture des use form
    Par sciencecool dans le forum Excel
    Réponses: 3
    Dernier message: 17/11/2014, 08h03
  2. Problème d'ouverture de fenêtre
    Par loic20h28 dans le forum Windows Forms
    Réponses: 19
    Dernier message: 02/09/2008, 13h23
  3. Problème d'ouverture de fenêtre avec ie6.
    Par volontier dans le forum IE
    Réponses: 2
    Dernier message: 11/10/2006, 15h16
  4. Réponses: 2
    Dernier message: 05/11/2005, 18h32
  5. problême à l'ouverture d'un form
    Par Stéph utilisateur d'acces dans le forum Access
    Réponses: 10
    Dernier message: 19/09/2005, 12h12

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