none
En mode débogage sous VS, affichage incompréhensible RRS feed

  • Question

  • Bonjour.

    Contexte : VS 2010 10.0.40219.1 SP1Rel, FW4.0.30319 SP1Rel, débogage (F5) d'une application web.

    Une instruction assigne la valeur True à la propriété Visible d'un panel (qui était False juste avant), mais elle reste affichée à False ; voir image jointe.

    Impression écran

    Quelqu'un a-t-il une explication ?

    Et qu'est-ce que cette propriété Visible qui apparaît seule, à True, dans la fenêtre Automatique ?

    Cordialement,

    Gilbert

    mardi 14 février 2012 16:47

Réponses

  • Bonjour,

    Ce phénomène s'explique le plus souvent lorsque votre Panel est inclus dans un autre Panel (ou autre contrôle composite) dont sa propriété Visible est à False.

    Est-ce que votre Panel est inclus dans un autre Panel ? Si oui, est ce que le panel conteneur (parent) est à Visible = False.

    Cordialement


    Gilles TOURREAU - MVP C#
    Architecte logiciel/Consultant/Formateur Freelance
    Blog : http://gilles.tourreau.fr
    - MCPD : Enterprise Developper / Windows Developper 3.5 / ASP .NET 3.5/4.0
    - MCITP : SQL Server 2008 Developper
    - MCTS : ADO .NET 3.5 / SQL Server 2008 Developper / Windows Forms 3.5 / ASP .NET 3.5/4.0

    mardi 14 février 2012 19:17
    Modérateur
  • Bonjour,

    Je conclus de tout ceci que la méthode Set de la propriété Visible du Panel imbriqué positionne bien sa valeur à True, mais que la méthode Get de cette propriété, au lieu de renvoyer simplement sa valeur, remonte en cascade tous ses conteneurs pour évaluer un résultat global. Est-ce correct ?
    Oui !

    Cordialement


    Gilles TOURREAU - MVP C#
    Architecte logiciel/Consultant/Formateur Freelance
    Blog : http://gilles.tourreau.fr
    - MCPD : Enterprise Developper / Windows Developper 3.5 / ASP .NET 3.5/4.0
    - MCITP : SQL Server 2008 Developper
    - MCTS : ADO .NET 3.5 / SQL Server 2008 Developper / Windows Forms 3.5 / ASP .NET 3.5/4.0

    mercredi 15 février 2012 22:37
    Modérateur

Toutes les réponses

  • Bonjour,

    Avez vous lacner un autre thread à même temps qui risquerait de modifier cette properiété ?

    Peut-on avoir le code complêt de la méthode ?

    Cordialement.

    mardi 14 février 2012 17:01
  • Bonjour Ould.

    Je n'ai lancé aucun autre thread, tout se déroule en synchrone (au moins à ma connaissance).

    Voici le code complet de la méthode.

        Private Sub AfficherOperationnelPlsSocieteAutorise()
            ' Voyons maintenant si un choix de site est nécessaire ou possible
            Select Case Osm.LstNumSiteAutorise.Count
                Case 0
                    ' Aucune société possible, erreur
                    Osm.AddErrorMessage(Msg004)
                    ' et on n'affiche pas le panel PnlChoixOrganisation
    
                Case 1
                    ' Un seul choix possible pour le site : on force le site
                    Osm.NumSiteCourant = Osm.LstNumSiteAutorise(0)
    
                    ' On affiche le panel pour le choix de société seulement
                    PnlChoixOrganisation.Visible = True
                    'Call ChargerLbxChoixSociete(Osm.NumSiteCourant)
    
                Case Else
                    ' Plusieurs choix possibles, on affiche le panel pour les choix de société et de site
                    PnlChoixOrganisation.Visible = True
                    With UjcSocieteSite
                        .MaxLigne = 10
                        .SeparateurMajeur = SeparateurMajeur
                        .SeparateurMineur = SeparateurMineur
                        .Valeurs = CjcApplication.GetSocieteSitePourUjcMajeurMineur(Osm.LstNumSocieteOracleAutorise _
                            , Osm.LstNumSiteAutorise _
                            , SeparateurMajeur _
                            , SeparateurMineur _
                            , 0 _
                            , 0 _
                            )
                        ' Spécifier l'index de la société par défaut
                        UjcSocieteSite.MajeurSelectedValue = Osm.NumSocieteOracleCourant.ToString
                        ' Spécifier l'index du site par défaut
                        UjcSocieteSite.MineurSelectedValue = Osm.NumSiteCourant.ToString
                    End With
            End Select
        End Sub
    
    Cordialement,

    Gilbert

    mardi 14 février 2012 17:14
  • Bonjour,

    Ce phénomène s'explique le plus souvent lorsque votre Panel est inclus dans un autre Panel (ou autre contrôle composite) dont sa propriété Visible est à False.

    Est-ce que votre Panel est inclus dans un autre Panel ? Si oui, est ce que le panel conteneur (parent) est à Visible = False.

    Cordialement


    Gilles TOURREAU - MVP C#
    Architecte logiciel/Consultant/Formateur Freelance
    Blog : http://gilles.tourreau.fr
    - MCPD : Enterprise Developper / Windows Developper 3.5 / ASP .NET 3.5/4.0
    - MCITP : SQL Server 2008 Developper
    - MCTS : ADO .NET 3.5 / SQL Server 2008 Developper / Windows Forms 3.5 / ASP .NET 3.5/4.0

    mardi 14 février 2012 19:17
    Modérateur
  • Bonjour Gilles.

    Merci pour cette piste. Mon panel n'est pas inclus dans un autre Panel, mais bien dans un Content, correspondant à un ContentPlaceHolder de la page maître, qui n'est rendu visible que plus tard. En le déclarant toujours visible, je constate que mon phénomène bizarre a disparu.

    Je conclus de tout ceci que la méthode Set de la propriété Visible du Panel imbriqué positionne bien sa valeur à True, mais que la méthode Get de cette propriété, au lieu de renvoyer simplement sa valeur, remonte en cascade tous ses conteneurs pour évaluer un résultat global. Est-ce correct ?

    Bonne journée,

    Gilbert

    P.S. Il serait peut-être judicieux de changer le titre de cette question en quelque chose du genre « Évaluation de la propriété Visible d'un contrôle imbriqué »

    mercredi 15 février 2012 07:47
  • Bonjour,

    Je conclus de tout ceci que la méthode Set de la propriété Visible du Panel imbriqué positionne bien sa valeur à True, mais que la méthode Get de cette propriété, au lieu de renvoyer simplement sa valeur, remonte en cascade tous ses conteneurs pour évaluer un résultat global. Est-ce correct ?
    Oui !

    Cordialement


    Gilles TOURREAU - MVP C#
    Architecte logiciel/Consultant/Formateur Freelance
    Blog : http://gilles.tourreau.fr
    - MCPD : Enterprise Developper / Windows Developper 3.5 / ASP .NET 3.5/4.0
    - MCITP : SQL Server 2008 Developper
    - MCTS : ADO .NET 3.5 / SQL Server 2008 Developper / Windows Forms 3.5 / ASP .NET 3.5/4.0

    mercredi 15 février 2012 22:37
    Modérateur