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

VB.NET Discussion :

Pb affichage d'un Form dans un Windows.Forms.DialogResult


Sujet :

VB.NET

  1. #1
    Membre régulier
    Homme Profil pro
    Inscrit en
    Mars 2012
    Messages
    261
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2012
    Messages : 261
    Points : 98
    Points
    98
    Par défaut Pb affichage d'un Form dans un Windows.Forms.DialogResult
    Bonjour à tous,

    Voilà dans mon application, à un moment donné j'affiche une boite de dialogue du style :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim myAnswer = (MessageBox.Show("Etes vous sûr ?", "Attention requise", MessageBoxButtons.YesNo, MessageBoxIcon.Warning))
    Puis je traite la réponse :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Select Case myAnswer
    Case Windows.Forms.DialogResult.Yes
     
    Form5.Show()
     
    Case Windows.Forms.DialogReslut.No
     
     
    End Select
    Le Form5 contenant des textbox que j'affiche si l'utilisateur clique sur Yes. Si je le mets à l'intérieur, mon Form apparaît mais j'ai des cases blanches à la place des textbox.
    Si je mets mon Form 5 avant le Select, tout s'affiche normalement.

    J'ai essayé avec le .refresh() mais çà marche pas. Y-a-t-il une solution pour parer à ce soucis d'affichage ?
    Merci d'avance

  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 : 39
    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
    Hello,

    Plusieurs points :

    1. Je dis peut être une bêtise mais si tu veux que ton MsgBox retourne un dialogResult, alors plutôt que de faire appel à Show(), fait appel à ShowDialog()
    A vérifier.

    2. Type toutes tes variables :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim myAnswer as  Windows.Forms.DialogResult

    3. Tu veux savoir pourquoi ça ne marche pas ? Alors il faut apprendre la base : Le pas-à-pas, tu mets un point d'arrêt, puis tu passes de ligne en ligne avec F10 (ou F11 si tu veux rentrer dans les fonctions.
    Tu passes ta souris au dessus des variables pour voir ce qu'il y a dedans...
    C'est LA BASE du debuggage... Ou tu peux tout faire en aveugle mais bon....
    L'avenir appartient à ceux... dont les ouvriers se lèvent tôt. (Coluche)

  3. #3
    Membre régulier
    Homme Profil pro
    Inscrit en
    Mars 2012
    Messages
    261
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2012
    Messages : 261
    Points : 98
    Points
    98
    Par défaut
    Hello,

    Merci pour tes réponses. Oui quand j'ai un soucis, je fais comme tu le suggères : un pas à pas.
    Là c'est plus un problème de priorité d'affichage je pense.
    J'avais essayé le showdialog. çà n'a rien changé...
    Je l'ai mis avant le select et ensuite j'affiche la boite de dialogue ...

  4. #4
    Expert éminent sénior

    Avatar de François DORIN
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2016
    Messages
    2 757
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2016
    Messages : 2 757
    Points : 10 541
    Points
    10 541
    Billets dans le blog
    21
    Par défaut
    Bonsoir,

    Citation Envoyé par IL-MAFIOSO
    Le Form5 contenant des textbox que j'affiche si l'utilisateur clique sur Yes. Si je le mets à l'intérieur, mon Form apparaît mais j'ai des cases blanches à la place des textbox.
    Si je mets mon Form 5 avant le Select, tout s'affiche normalement.
    Il faudrait avoir un code plus complet pour te répondre avec certitude, notamment le code complet de la méthode dans laquelle tu affiches ta boite de dialogue et ta form5 (et avoir les deux versions du code si possible, celle qui marche et celle qui ne marche pas).

    Néanmoins, le coup classique, c'est les cases blanches à la place des textbox. Cela signifie quelles ne sont pas dessinées. Si elles ne sont pas dessinées, cela signifie généralement (99% du temps) que ta boucle de gestion des événements est bloquée.

    Qu'est-ce que cette boucle de gestion des événements vas-tu me dire ? Il s'agit de la manière dont les Windows Form sont traitées. Dès que tu as un événement sur une forme (un clic souris, une touche du clavier qui est pressée, un contrôle qui a besoin d'être redessiné, etc...) un événement est placée dans une file d'attente. La boucle d'événements traite alors les événements un part un dans l'ordre d'arrivée. La boucle d'événement ne peut traité qu'un seul événement à la fois. Et si le traitement d'un événement prend du temps (test simple : mettre un Task.Delay(5000) dans l'événement de traitement d'un clic d'un bouton), il y a alors l'interface graphique qui "gèle", dans la mesure où les événements en attente sont bloqués (dont les événements Paint).

    Aussi, dans ton cas, plus qu'un problème de localisation de la ligne Form5.Show(), je pense que quelque chose bloque ta boucle de gestion des événements...
    François DORIN
    Consultant informatique : conception, modélisation, développement (C#/.Net et SQL Server)
    Site internet | Profils Viadéo & LinkedIn
    ---------
    Page de cours : fdorin.developpez.com
    ---------
    N'oubliez pas de consulter la FAQ C# ainsi que les cours et tutoriels

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Webplanneur
    Inscrit en
    Mars 2012
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Webplanneur
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2012
    Messages : 24
    Points : 38
    Points
    38
    Par défaut
    Bonsoir

    juste mauvaise écriture je pense
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    
    Select Case myAnswer
    
    Case Windows.Forms.DialogResult.Yes
     
    Form5.Show()
     
     'Case Windows.Forms.DialogReslut.No
    
     Case Windows.Forms.DialogResult.No
     
    End Select

  6. #6
    Membre régulier
    Homme Profil pro
    Inscrit en
    Mars 2012
    Messages
    261
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2012
    Messages : 261
    Points : 98
    Points
    98
    Par défaut
    Citation Envoyé par olive7140 Voir le message
    Bonsoir

    juste mauvaise écriture je pense
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    
    Select Case myAnswer
    
    Case Windows.Forms.DialogResult.Yes
     
    Form5.Show()
     
     'Case Windows.Forms.DialogReslut.No
    
     Case Windows.Forms.DialogResult.No
     
    End Select
    Oui c'était une erreur quand j'ai posté ici

  7. #7
    Membre régulier
    Homme Profil pro
    Inscrit en
    Mars 2012
    Messages
    261
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2012
    Messages : 261
    Points : 98
    Points
    98
    Par défaut
    Bonjour Dorinf,

    Merci pour ces précieuses informations. Concernant ma boucle, cela concerne la suppression de données dans différentes bases de données. Et mon form permettait simplement d'indiquer au fur et à mesure que le traitement d'une BDD était en cours ou réalisée.

    Comme tu dis qu'il fait une chose après l'autre, si l'utilisateur choisis oui, la première chose que je fais avant de me connecter à toute BDD est d'afficher cette fameuse fenêtre du style :

    - Traitement base de données 1 : en attente.
    - Traitement base de données 2 : en attente.
    - Traitement base de données 3 : en attente.

    Puis au fur et à mesure du traitement, je change le mot "en attente" pour "en cours". Sachant que la première partie du texte (jusqu'au deux points) est un autre textbox fixe. Je ne change que le deuxième textbox collé derrière.

    - Traitement base de données 1 : en cours ...
    - Traitement base de données 2 : en attente.
    - Traitement base de données 3 : en attente.

    - Traitement base de données 1 : terminée.
    - Traitement base de données 2 : en cours ...
    - Traitement base de données 3 : en attente.

    Je fais de même pour sauvegarder une année choisie et j'ai aucun soucis car dans ce cas là je ne demande pas de confirmation (utilisation du select ... ) car ce n'est pas une suppression ...

  8. #8
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 904
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 904
    Points : 10 168
    Points
    10 168
    Billets dans le blog
    36
    Par défaut
    Bonjour,


    Citation Envoyé par IL-MAFIOSO Voir le message
    Bonjour Dorinf,

    Merci pour ces précieuses informations. Concernant ma boucle, cela concerne la suppression de données dans différentes bases de données. Et mon form permettait simplement d'indiquer au fur et à mesure que le traitement d'une BDD était en cours ou réalisée.
    Puisque tu ne veux visiblement pas montrer ton code...

    Cela ressemble à utiliser un 747 pour dépasser un escargot, mais bon... Une idée complètement en l'air et non testable. Tu mets chaque processus de zigonnage de BD dans un BackGroundWorker et tu laisses ta Form toujours ouverte et tu ne perds jamais la main, ou presque, sur ton programme. Quand le BackgroundWorker a terminé sa tâche, il déclenche un événement. Une fois l'événement déclenché, tu mets ta form à jour.
    À ma connaissance, le seul personnage qui a été diagnostiqué comme étant allergique au mot effort. c'est Gaston Lagaffe.

    Ô Saint Excel, Grand Dieu de l'Inutile.

    Excel n'a jamais été, n'est pas et ne sera jamais un SGBD, c'est pour cela que Excel s'appelle Excel et ne s'appelle pas Access junior.

  9. #9
    Membre régulier
    Homme Profil pro
    Inscrit en
    Mars 2012
    Messages
    261
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2012
    Messages : 261
    Points : 98
    Points
    98
    Par défaut
    Citation Envoyé par clementmarcotte Voir le message
    Bonjour,

    Puisque tu ne veux visiblement pas montrer ton code...
    Salut,

    Je suis actuellement en congés et ma clé USB de sauvegarde est resté avec mon portable personnel dans un casier. Je posterais le bout du code dès que possible.

Discussions similaires

  1. Réponses: 8
    Dernier message: 18/12/2014, 11h13
  2. c# Windows form 1 vers windows form 2
    Par thefonz dans le forum Windows Forms
    Réponses: 4
    Dernier message: 18/03/2013, 21h28
  3. Origine graphique dans un Windows Form
    Par The Juggler dans le forum Framework .NET
    Réponses: 2
    Dernier message: 20/12/2006, 09h23
  4. [VB.NET] Graphique dans un windows form
    Par f_abibi dans le forum Windows Forms
    Réponses: 1
    Dernier message: 06/10/2006, 08h40
  5. [C#] utilisation de la souris dans une windows form
    Par dimmak dans le forum Windows Forms
    Réponses: 2
    Dernier message: 26/03/2006, 23h21

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