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 :

Propriété Visible reste à False


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2012
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2012
    Messages : 39
    Par défaut Propriété Visible reste à False
    Bonjour

    j'ai une Form avec un TabControl comportant deux TabPage. Sur le TabPage1, j'ai mis un Button1 et sur la TabPage2, un PictureBox1.

    Je veux rajouter un RichTextBox nommé rtb sur le PictureBox1 lorsque je clique sur le Button1. Aucun problème avec mon code jusque là. Mon rtb est bien visible sur le PictureBox1 dès que je clique sur Button1.

    Voici mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            Dim rtbVis1, rtbVis2 As Boolean
            Dim rtb As New RichTextBox
     
            rtbVis1 = rtb.Visible
     
            TabPage2.Focus()
            PictureBox1.Visible = True
            PictureBox1.Controls.Add(rtb)
     
            rtb.Visible = True
            rtbVis2 = rtb.Visible
     
        End Sub
    Alors, comment se fait-l que la propriété Visible de mon rtb est à True dès que je le crée (rtbVis1 = True) mais à False (rtbVis2 = False) dès que je le rajoute sur mon PictureBox1 ?
    Pourtant il est bien visible sur mon PictureBox1, et malgré l'instruction rtb.Visible = True juste avant rtbVis2, celui-ci reste à False ?

    J'ai donc mis mon Button1 sur le TabPage2 pour voir si j'avais le même problème : pas du tout ! rtbVis1=rtbVis2=True

    Mais je veux mon Button1 sur TabPage1. Alors j'ai supposé qu'étant sur TabPage1 lorsque je clique, mon PictureBox1 est forcément non visible puisque caché sur son TabPage2. J'ai donc mis le focus sur TabPage2 et mis la propriété Visible du PictureBox1 à True en espérant que mon rtb redeviendrait visible. Hélas non !

    Que se passe-t-il et que faire pour que rtb reste bien à rtb.visible = True en étant sur TabPage1 ?

    Merci de votre aide et en espérant avoir été assez clair.
    Cordialement.

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Mars 2012
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2012
    Messages : 39
    Par défaut
    Rebonjour

    j'ai rajouté un CheckBox1 et un Label1 sur TabPage1.

    Voici le bout de code du CheckBox :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     Private Sub CheckBox1_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox1.CheckedChanged
     
            For Each rtb As RichTextBox In PictureBox1.Controls
                If CheckBox1.Checked = True Then
                    rtb.Visible = True
                Else
                    rtb.Visible = False
                End If
                Label1.Text = rtb.Visible
            Next
     
        End Sub
    Quand CheckBox1 est coché le rtb s'affiche bien sur le PictureBox1 de la TabPage2, et quand le ChechBox2 est décoché, le rtb ne s'affiche pas. Bref, c'est normal. Par contre le Label1 m'affiche toujours False, même si le rtb est visible sur TabPage2.

    Existe-t'il un moyen (peut-être autre que la propriété Visible) pour savoir si mon rtb est affiché ou non ?

    Merci pour vos idées.

  3. #3
    Membre chevronné

    Homme Profil pro
    Appui fonctionnel senior
    Inscrit en
    Juin 2007
    Messages
    461
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Appui fonctionnel senior
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 461
    Par défaut
    Je te propose le code suivant (sans certitude car je n'ai pas l'habitude du VB) :
    Citation Envoyé par sergelagier Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     Private Sub CheckBox1_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox1.CheckedChanged
     
            For Each rtb As RichTextBox In PictureBox1.Controls
                rtb.Visible = CheckBox1.Checked
                Label1.Text = Iif(rtb.Visible, "Oui", "Non")
            Next
     
        End Sub
    J'ai simplifié ton test qui en fait ne sert à rien vu que tu raffectes ensuite dans ta propriété. Autant affecter directement la valeur du test
    Le coup du IIf, c'est un peu tordu mais c'est surtout pour que le VB considère le rtb.Visible en tant que booléen.

    Au passage, petit conseil d'ergonomie : si ton objectif est de masqué un contrôle car non utilisable par l'utilisation, tu ferai mieux de jouer sur la propriété Enabled. De cette façon, l'utilisateur ne pourra pas l'utiliser, mais constatera quand même que l'option existe. C'est simplement qu'il y a des conditions qui ne sont pas remplies pour qu'il puisse l'utiliser.

Discussions similaires

  1. Valeur d'un champ TextBox avec propriété visible = false
    Par mohamed301084 dans le forum VB.NET
    Réponses: 4
    Dernier message: 26/04/2010, 16h02
  2. Réponses: 6
    Dernier message: 26/07/2006, 11h00
  3. utilisation propriété VISIBLE
    Par By-nôm dans le forum Access
    Réponses: 16
    Dernier message: 30/06/2006, 14h36
  4. Réponses: 2
    Dernier message: 06/06/2006, 12h09
  5. Propriété visible
    Par Mateache dans le forum Access
    Réponses: 20
    Dernier message: 07/03/2006, 18h10

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