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.