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 :

Problème d'affichage avec un FlowLayoutPanel !


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Février 2015
    Messages
    169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Février 2015
    Messages : 169
    Par défaut Problème d'affichage avec un FlowLayoutPanel !
    Salut à tous !

    J'ai un petit problème avec une mise en page sur un(e)? FlowLayoutPanel !

    Je m'explique :
    J'ai un logiciel sur lequel je gère l'affichage des contrôles dynamiquement car il n'est pas le même en fonction des données lues dans un fichier.

    Dans mon(ma)? FlowLayoutPanel j'ai TOUJOURS un label avec un texte : "Ajouter une intervention " et un bouton "+" pour ajouter l'intervention.
    Ces 2 contrôles sont l'un à coté de l'autre.

    Si j'ai déjà des interventions présentes dans le fichier, alors avant ces 2 contrôle, (la ligne au dessus donc) j'incorpore une ComboBox avec la liste de mes interventions, ainsi qu'une RixhTextBox qui contiens l'intervention les détails etc de l'intervention que sélectionnera l'utilisateur. Au départ je donne la propriété visible de cette RichTextBox en False !

    Lors d'un choix par l'utilisateur dans cette ComboBox, Choix d'une intervention donc, j'affiche cette intervention dans la RichTextBox et la rend Visible.

    C'est ici mon problème.

    Ma RichTextBox s'affiche TOUJOURS "RichTextBox.Height" plus bas que ma ComboBox.

    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
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    Public Sub Ouverture_De_Fiche()
     
            LBL_Nom_Entreprise.Text = Nom_Client.Société.Nom
            LBL_Nom_Entreprise.Location = New Point(Me.Width / 2 - LBL_Nom_Entreprise.Width / 2, 24)
     
            FlowLayoutPanel.Add(New FlowLayoutPanel)
     
            Label.Add(New Label)
            Label(Label.Count - 1).Text = "Ajouter une intervention :"
            Label(Label.Count - 1).Width = 125
            Label(Label.Count - 1).Height = 22
            Label(Label.Count - 1).TextAlign = ContentAlignment.BottomCenter
     
            Bouton.Add(New Button)
            Bouton(Bouton.Count - 1).Text = "+"
            Bouton(Bouton.Count - 1).Size = New Size(25, 22)
     
            AddHandler Bouton(Bouton.Count - 1).Click, AddressOf AjouterUneIntervensionToolStripMenuItem_Click
     
            For i As Integer = 0 To Nom_Client.Feuille.Count - 1
     
                With FlowLayoutPanel(FlowLayoutPanel.Count - 1)
                    .FlowDirection = FlowDirection.LeftToRight
                    .Dock = DockStyle.Fill
                    .AutoScroll = True
                    .AutoSizeMode = Windows.Forms.AutoSizeMode.GrowOnly
                End With
     
                TabControl1.TabPages.Add(Nom_Client.Feuille(i).Nom)
                TabControl1.TabPages(TabControl1.TabPages.Count - 1).Controls.Add(FlowLayoutPanel(FlowLayoutPanel.Count - 1))
     
                If Nom_Client.Feuille(i).Interventions.Count > 0 Then
     
                    ComboBox.Add(New ComboBox)
                    RichTextBox.Add(New RichTextBox)
     
                    With ComboBox(ComboBox.Count - 1)
                        .Size = New Size(200, 22)
                        .DropDownStyle = ComboBoxStyle.DropDownList
                    End With
     
                    For j As Integer = 0 To Nom_Client.Feuille(i).Interventions.Count - 1
                        ComboBox(ComboBox.Count - 1).Items.Add("Facture N° " & Nom_Client.Feuille(i).Interventions(j).Num_Facture & ". Le " & Nom_Client.Feuille(i).Interventions(j).Date1)
                    Next
     
                    With RichTextBox(RichTextBox.Count - 1)
                        .BorderStyle = BorderStyle.None
                        .BackColor = Control.DefaultBackColor
                        .Size = New Size(300, 50)
                        .ReadOnly = True
                        .Visible = False
                    End With
     
                    AddHandler RichTextBox(RichTextBox.Count - 1).Click, AddressOf RichTextBox_Click
                    AddHandler ComboBox(ComboBox.Count - 1).SelectedIndexChanged, AddressOf ComboBox_Click
     
                    With FlowLayoutPanel(FlowLayoutPanel.Count - 1)
                        .Controls.Add(ComboBox(ComboBox.Count - 1))
                        .Controls.Add(RichTextBox(RichTextBox.Count - 1))
                        .SetFlowBreak(ComboBox(ComboBox.Count - 1), True)
                        .SetFlowBreak(RichTextBox(RichTextBox.Count - 1), True)
                    End With
     
                End If
     
                With FlowLayoutPanel(FlowLayoutPanel.Count - 1)
                    .Controls.Add(Label(Label.Count - 1))
                    .Controls.Add(Bouton(Bouton.Count - 1))
                End With
     
            Next
     
    End Sub
    Et 2 captures d'écrans :

    Nom : Capture d'écran 2015-06-15 14.37.00.png
Affichages : 767
Taille : 28,1 KoNom : Capture d'écran 2015-06-15 14.37.12.png
Affichages : 682
Taille : 32,2 Ko

    Si je change la Hauteur de ma RichTextBox, alors celle-ci baisse d'autant de pixels dans mon(ma)? FlowLayoutPanel.

    Ca fait un moment que je manipule mon code dans tous les sens avec, sans autosize avec, sans autoscroll bref je patauge dans la semoule...

    Merci par avance !

  2. #2
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 204
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 204
    Par défaut
    margin sur le rtb je pense (vérifier aussi padding sur le flp)
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  3. #3
    Membre confirmé
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Février 2015
    Messages
    169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Février 2015
    Messages : 169
    Par défaut
    Merci pour votre réponse mais hélas, même problème même combat :

    j'ai ajouté ces 2 lignes :

    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
    With RichTextBox(RichTextBox.Count - 1)
        .BorderStyle = BorderStyle.None
        .BackColor = Control.DefaultBackColor
        .Size = New Size(300, 50)
        .ReadOnly = True
        .Visible = False
        .Margin.All.Equals(0)
    End With
     
    AddHandler RichTextBox(RichTextBox.Count - 1).Click, AddressOf RichTextBox_Click
    AddHandler ComboBox(ComboBox.Count - 1).SelectedIndexChanged, AddressOf ComboBox_Click
     
    With FlowLayoutPanel(FlowLayoutPanel.Count - 1)
        .Controls.Add(ComboBox(ComboBox.Count - 1))
        .Controls.Add(RichTextBox(RichTextBox.Count - 1))
        .SetFlowBreak(ComboBox(ComboBox.Count - 1), True)
        .SetFlowBreak(RichTextBox(RichTextBox.Count - 1), True)
        .Padding.All.Equals(0)
    End With
    Si je ne mets pas mon flp en DockStyle.Fill, (que mon flp est trop petit pour m'afficher les controles en entier et qu'il m'affiche des scrollbar du coups), où si je redimensionne ma form en plus petit (voir Screenshots en dessous), la richtextbox ce place correctement en dessous de ma combobox.

    Je n'y comprends que dalle ...

    Nom : Capture d'écran 2015-06-17 08.41.43.png
Affichages : 692
Taille : 73,8 KoNom : Capture d'écran 2015-06-17 08.41.50.png
Affichages : 660
Taille : 101,9 Ko

    Nom : Capture d'écran 2015-06-17 08.47.56.png
Affichages : 630
Taille : 18,6 KoNom : Capture d'écran 2015-06-17 08.48.05.png
Affichages : 616
Taille : 21,5 Ko

    Preuves à l'appuis !

  4. #4
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 204
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 204
    Par défaut
    Citation Envoyé par Jeano81 Voir le message
    .Margin.All.Equals(0)
    à ma connaissance cette commande n'a jamais défini les marges

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .Margin = new padding(0)
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  5. #5
    Membre confirmé
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Février 2015
    Messages
    169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Février 2015
    Messages : 169
    Par défaut
    Ah je ne savais pas ! Merci.

    Mais le problème reste le même ! :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    With FlowLayoutPanel(FlowLayoutPanel.Count - 1)
        .Controls.Add(ComboBox(ComboBox.Count - 1))
        .Controls.Add(RichTextBox(RichTextBox.Count - 1))
        .SetFlowBreak(ComboBox(ComboBox.Count - 1), True)
        .SetFlowBreak(RichTextBox(RichTextBox.Count - 1), True)
        '.Margin = New Padding(0)'.Padding = New Padding(0)
    End With
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    With RichTextBox(RichTextBox.Count - 1)
        .BorderStyle = BorderStyle.None
        .BackColor = Control.DefaultBackColor
        .Size = New Size(300, 50)
        .ReadOnly = True
        .Visible = False
        .Margin = New Padding(0)
    End With

  6. #6
    Membre Expert 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 : 41
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développement VB.NET
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 707
    Par défaut
    Bonjour,

    As-tu essayé de mettre pour le combobox ET le Richtextbox, leur "Dock = Top" ?
    Sans toucher à Anchor...

    Sinon moi je suis plus fan du TableLayoutPanel, avec une cellule = 1 control à Dock=Fill, et tu gères la taille des lignes ou cellules du TLP.

    Tu peux ajouter dynamiquement des lignes ou des colonnes en faisant : TableLayoutPanel.GrowStyle.AddRow.
    PAr contre pour faire ce que tu ferais, il faudrait mettre un premier TLP avec deux lignes 1 colonnes, la ligne du dessous pour "ajouter une intervention"
    Et dans la ligne du dessus tu mets un autre TLP, celui là tu lui fera des AddRows pour un comboboc pui sun autre pour ajouter le richtextbox...

Discussions similaires

  1. Problème d'affichage avec IE
    Par sheepk dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 11/11/2005, 14h00
  2. Réponses: 6
    Dernier message: 19/05/2005, 12h06
  3. problème d'affichage avec printf
    Par sorari dans le forum C++
    Réponses: 12
    Dernier message: 08/03/2005, 19h30
  4. Réponses: 6
    Dernier message: 19/10/2004, 14h46
  5. Problème d'affichage avec trace
    Par WriteLN dans le forum Flash
    Réponses: 10
    Dernier message: 22/10/2003, 17h59

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