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 :

Problème d'affichage MessageBox.Show()


Sujet :

C#

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2015
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Février 2015
    Messages : 10
    Points : 6
    Points
    6
    Par défaut Problème d'affichage MessageBox.Show()
    Bonjour à tous,

    je suis en train de bosser sur un projet C# sur visual studio 2013 et je rencontre ce problème pour la première fois.
    En effet, je crée un formulaire composé de plusieurs UserControls avec un évènement Click censé ouvrir une MessageBox avec la méthode Show(). Or la MessageBox n'apparait pas à l'écran, elle semble être en arrière-plan et le seul moyen de la faire apparaître et d'appuyer sur des touches comme Alt ou F10 etc... Evidemment la MessageBox bloque le programme tant qu'elle n'est pas fermée, ce qui est problématique.

    En fouinant un peu sur le net, j'ai vu que la question revenait quelques fois. Même si je ne comprends pas toujours tout, il est question de problème avec l'override des évènements OnPaint(). Cependant, même si j'enlève cette surcharge, le problème reste le même. L'un de vous a-t-il déjà été confronté à ce truc???

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    As-tu mis un propriétaire (Owner) lors de ton appel? Si ce n'est pas le cas, renseigne le paramètre "Owner" en y mettant la référence de la fenêtre qui est censée être le parent du messagebox... Normalement, ce paramètre devrait toujours être renseigné pour être propre...

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2015
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Février 2015
    Messages : 10
    Points : 6
    Points
    6
    Par défaut
    Bonjour Philippe, merci de ta réponse.
    Malheureusement, j'avais déjà essayé de spécifier l'Owner car j'avais vu ce conseil sur les autres fils de discussion. Mais que ce soit en spécifiant le Form parent ou l'UserControl lui-même comme owner, la MessageBox n'apparait toujours pas...

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2015
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Février 2015
    Messages : 10
    Points : 6
    Points
    6
    Par défaut
    Voici des articles pertinents même si j'avoue ne pas tout comprendre:

    surtout celui-ci
    http://wishmesh.com/2012/12/c-net-me...hind-the-form/
    Que veut-il dire par : " Make sure you are not invalidating your Control."?

    https://social.msdn.microsoft.com/Fo...=csharpgeneral

  5. #5
    Invité
    Invité(e)
    Par défaut
    Dans ce cas, le plus simple serait que tu nous montres le code, en particulier de ton UserControl qui pose problème.

  6. #6
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Points : 5 195
    Points
    5 195
    Par défaut
    ca fait aussi penser au fait que la form qui appelle la messagebox soit en "toujours devant" et donc, n'importe quelle nouvelle fenetre sera affichée
    derrière le demandeur.

    Tu n'aurais pas un paramètre genre "Always On top" qui serait positionné ?
    The Monz, Toulouse
    Expertise dans la logistique et le développement pour
    plateforme .Net (Windows, Windows CE, Android)

  7. #7
    Futur Membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2015
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Février 2015
    Messages : 10
    Points : 6
    Points
    6
    Par défaut
    Bonjour j'ai finalement réussi à identifier la fonction qui empêche ma MessageBox de se dessiner.
    Il s'agit d'une fonction qui est appelé lors de l'évènement OnPaint d'un de mes UserControls. Voici le code:

    Le tableLayoutPanel1 contient deux Picturebox:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
     
    this.tableLayoutPanel1.Paint += new System.Windows.Forms.PaintEventHandler(this.tableLayoutPanel1_Paint);
     
     private void tableLayoutPanel1_Paint(object sender, PaintEventArgs e)
            {         
     
                if (cinths.Valeur == 1)                                                                                      //ici je choisis des images selon la valeur de certains champs
                    pctbIntrus.Image = Properties.Resources.intrus_orange;
                else if (intrus.Valeur == 1)
                    pctbIntrus.Image = Properties.Resources.intrus_rouge;
                else if (iintru.Valeur == 1)
                {
                    pctbIntrus.BackColor = Color.Gray;
                    pctbSat.Image = null;
                }
                else
                    pctbIntrus.Image = Properties.Resources.intrus_bleu;
     
                if (pctbSat.Image != null)
                    ((Bitmap)pctbSat.Image).MakeTransparent(Color.FromArgb(136, 136, 136));
     
                if (supsat.Valeur == 0)
                    pctbSat.Image = Properties.Resources.satellite;
                else if (supsec.Valeur == 0)
                    pctbSat.Image = Properties.Resources.telefon;
                else pctbSat.Image = Properties.Resources.perte_trans;
            }
    C'est précisément quand je commente ce code que la MessageBox est visible.

  8. #8
    Futur Membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2015
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Février 2015
    Messages : 10
    Points : 6
    Points
    6
    Par défaut
    Du coup, j'ai résolu mon problème en mettant la mise à jour des Picturebox à un autre endroit du code; mais je n'ai pas d'explications.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème avec MessageBox.Show
    Par A&Nexus dans le forum Windows Mobile
    Réponses: 4
    Dernier message: 02/01/2007, 13h57
  2. [VB.Net] Problème d'affichage de text dans une MessageBox
    Par eultartuffe dans le forum Windows Forms
    Réponses: 6
    Dernier message: 03/04/2006, 20h56
  3. [Kylix] problème d'affichage
    Par scalvi dans le forum EDI
    Réponses: 1
    Dernier message: 18/06/2003, 10h07
  4. Réponses: 1
    Dernier message: 06/03/2003, 11h57
  5. probléme d'affichage d'une fiche
    Par sb dans le forum Composants VCL
    Réponses: 7
    Dernier message: 29/08/2002, 09h43

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