Redimensionner simultanement plusieurs objet dans un flowlayoutpanel

DeveloppeurVb Messages postés 121 Date d'inscription mardi 18 février 2003 Statut Membre Dernière intervention 19 avril 2016 - 21 juil. 2011 à 08:21
DeveloppeurVb Messages postés 121 Date d'inscription mardi 18 février 2003 Statut Membre Dernière intervention 19 avril 2016 - 9 août 2011 à 10:10
Bonjour,
J'ai un probleme avec le formlayoutpanel en vb.net.
A partir d'une requete SQl sur une base de donnée,je créer des un richtextbox dans un formlayoutpanel.
Ne sachant pas combien de richtextbox je vais avoir besoin, ceux si sont creer dynamiquement dans le formlayoutpanel.

Exemple du code : (Simplifie) qui genere les rtfbox

Do while MyDAORecordset.eof= false
If Txt <> "" Then
RichTextboxX = New RichTextBox
RichTextboxX.Name = MyDAORecordset("Ligne").Value
RichTextboxX.Multiline = True
RichTextboxX.WordWrap = True
RichTextboxX.Tag = MyDAORecordset("Ligne").Value
RichTextboxX.BorderStyle = BorderStyle.None
RichTextboxX.Width = Me.FlowLayoutPanel1.Width - 20
RichTextboxX.Text = Txt
'
Me.FlowLayoutPanel1.Controls.Add(RichTextboxX)
End If
MyDAORecordset.movenext
loop

Je voudrais pouvoir redimensionner simultanement les richtextbox dans l'evenement form_resize de la form
qui contient le flowlayoutpanel
Comment pourrais je faire

Merci de votre aide

2 réponses

NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
21 juil. 2011 à 20:49
Bonjour,

Tu peux les mettre dans une liste (List(Of RichTextBox)) Et ensuite, lors de l'evenement Resize de la form, (ou du controle) tu peux agir dessus.

Sinon, il me semble qu'un controle (TableLayoutPanel, je crois) permet de faire déjà un tableau, tu peux aussi voir de ce coté, avec aussi la propriété Dock des controles contenu à Fill.

Mon site
0
DeveloppeurVb Messages postés 121 Date d'inscription mardi 18 février 2003 Statut Membre Dernière intervention 19 avril 2016
9 août 2011 à 10:10
J'ai trouvé :
ajouter dynamiquement l'evenement au fur et a mesure de l'ajout de RichTextboxX dans la boucle de lecture des enregistrements.

AddHandler RichTextboxX.Resize, AddressOf RichTextboxX_Resize

dans l'evenement :

Private Sub RichTextboxX_Resize(ByVal sender As Object, ByVal e As System.EventArgs) Handles RichTextboxX.Resize
If Me.FlowLayoutPanel1.Controls.Count > 0 Then
Dim RtBox As RichTextBox
Dim R
For R = 0 To Me.FlowLayoutPanel1.Controls.Count - 1
RtBox = Me.FlowLayoutPanel1.Controls(R)
RtBox.Width = Me.FlowLayoutPanel1.Width - 30
Next
End If
End Sub

et voila.
on ne sait jamais cela pourra peut etre servir a quelqu'un.
0
Rejoignez-nous