Identifier un objet selectionné dasn un flowlayoutpanel

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

Mon probleme, comment identifier le richtextbox sur lequel aura cliquer l'utilisateur.

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

Merci de votre aide

8 réponses

Utilisateur anonyme
18 juil. 2011 à 20:01
Salut,

Dans ta boucle do loop, tu dois t'abonner à l'événement Click du RichTextBox que tu crée dynamiquement :
AddHandler RichTextboxX.Click, AddressOf RichTextBoxX_Click

Et implémenter la procedure appelée :
Private Sub RichTextBoxX_Click(ByVal sender As Object, ByVal e As EventArgs)
    Dim rtbX As RichTextBox = DirectCast(sender, RichTextBox)
    MessageBox.Show(rtb.Name)
End Sub

Où rtbX (tu lui donnera le nom que tu veux) représente le RichTextBoxX cliqué par l'utilisateur.
Bonne soirée.
3
DeveloppeurVb Messages postés 121 Date d'inscription mardi 18 février 2003 Statut Membre Dernière intervention 19 avril 2016
18 juil. 2011 à 23:15
Merci pour ta reponse.
Bonsoir
0
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:58
Bonjour,

Dans le cas ou je voudrais pouvoir par exemple mettre l'equivalent de ( en vb6)
richtextboxx_keypress(keyascii ...)
keyascii=0

comment pourrais je faire pour :
- interdire l'appuis sur une touche dans le richtextboxx selectionné par l'utilisateur.
- pouvoir aussi mettre un border style different a la selection d'un richtextboxx.
Merci par avance.
0
Utilisateur anonyme
21 juil. 2011 à 16:40
Bonsoir,
Je ne connais pas bien vb6.
Je suppose qu'il s'agissait de supprimer une touche activée par l'utilisateur.
Dans ce cas tu dois observer l'événement KeyDown et écrire :
e.SuppressKeyPress = True

Bonne soirée.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Utilisateur anonyme
21 juil. 2011 à 16:50
Et pour le BorderStyle tu n'as que 3 choix possibles 3D, Flat et rien.
Mais rien ne t'empêche de placer un autre contrôle derrière ton RichTextBox de taille légèrement plus grande et qui change de couleur lors de la sélection.
Bonne soirée.
0
DeveloppeurVb Messages postés 121 Date d'inscription mardi 18 février 2003 Statut Membre Dernière intervention 19 avril 2016
22 juil. 2011 à 11:15
Ce que je voudrais c'est de pouvoir gerer une sorte de focus en mettant en evidence au moment de la prise de focus de l'objet par une couleur et a la perte du focus remettre la couleur d'origine.

J'ai essaye le gotfocus et le lostfocus, cela fonctionne pour le premier richtextbox selectionné mais quant on chage de richtextbox, c'est toujours le premier selectionne qui change de couleur et pas le nouveau.
0
DeveloppeurVb Messages postés 121 Date d'inscription mardi 18 février 2003 Statut Membre Dernière intervention 19 avril 2016
22 juil. 2011 à 11:50
Ca y est je crois que j'ai trouver
j'ai ajoter les evenements suivant dynamiquement

AddHandler RichTextboxX.KeyDown, AddressOf RichTextboxX_KeyDown
AddHandler RichTextboxX.GotFocus, AddressOf RichTextboxX_GotFocus
AddHandler RichTextboxX.LostFocus, AddressOf RichTextboxX_LostFocus

ensuite dans chaque evenement de mon RichTextboxX :

Private Sub RichTextboxX_GotFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles RichTextboxX.GotFocus
' pour mon focus
RichTextboxX = sender
' change le fond de couleur du rtfbox
RichTextboxX.BackColor = Color.Cyan
End Sub

Private Sub RichTextboxX_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles RichTextboxX.KeyDown
e.SuppressKeyPress = True ' bloque l'appuis sur les touches
End Sub

Private Sub RichTextboxX_LostFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles RichTextboxX.LostFocus
' remet la couleur quant on change
RichTextboxX.BackColor = Color.White
End Sub

Voila je test et on verra ce que ca donne a la longue
HA tres important merci à HVB pour son developpé a l'adresse :
http://www.vbfrance.com/codes/AJOUTER-CONTROLES-DYNAMIQUEMENT-VB-NET_5616.aspx

C'est grace a lui.
Merci .
0
DeveloppeurVb Messages postés 121 Date d'inscription mardi 18 février 2003 Statut Membre Dernière intervention 19 avril 2016
22 juil. 2011 à 11:51
Par contre je n'ai pas regler mon probleme de redimensionnement je vais faire des recherches.
Mais si vous avez des idees n'hesitez pas.
Merci par avance.
0
Rejoignez-nous