Identifier un objet selectionné dasn un flowlayoutpanel [Résolu]

Messages postés
126
Date d'inscription
mardi 18 février 2003
Dernière intervention
19 avril 2016
- - Dernière réponse : DeveloppeurVb
Messages postés
126
Date d'inscription
mardi 18 février 2003
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
Afficher la suite 

Votre réponse

8 réponses

Meilleure réponse
3
Merci
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.

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 97 internautes nous ont dit merci ce mois-ci

Commenter la réponse de Utilisateur anonyme
Messages postés
126
Date d'inscription
mardi 18 février 2003
Dernière intervention
19 avril 2016
0
Merci
Merci pour ta reponse.
Bonsoir
Commenter la réponse de DeveloppeurVb
Messages postés
126
Date d'inscription
mardi 18 février 2003
Dernière intervention
19 avril 2016
0
Merci
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.
Commenter la réponse de DeveloppeurVb
0
Merci
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.
Commenter la réponse de Utilisateur anonyme
0
Merci
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.
Commenter la réponse de Utilisateur anonyme
Messages postés
126
Date d'inscription
mardi 18 février 2003
Dernière intervention
19 avril 2016
0
Merci
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.
Commenter la réponse de DeveloppeurVb
Messages postés
126
Date d'inscription
mardi 18 février 2003
Dernière intervention
19 avril 2016
0
Merci
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 .
Commenter la réponse de DeveloppeurVb
Messages postés
126
Date d'inscription
mardi 18 février 2003
Dernière intervention
19 avril 2016
0
Merci
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.
Commenter la réponse de DeveloppeurVb

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.