Evenement click droit coller dans textbox [Résolu]

Lokomass 191 Messages postés jeudi 7 janvier 2010Date d'inscription 15 mai 2013 Dernière intervention - 4 janv. 2010 à 11:21 - Dernière réponse : Lokomass 191 Messages postés jeudi 7 janvier 2010Date d'inscription 15 mai 2013 Dernière intervention
- 4 janv. 2010 à 14:25
Bonjour,

J'aimerai percevoir l'evenement click droit coller dans une textbox, comment faire ?

Merci
Afficher la suite 

11 réponses

Répondre au sujet
Renfield 17307 Messages postés mercredi 2 janvier 2002Date d'inscription 18 janvier 2017 Dernière intervention - 4 janv. 2010 à 14:20
+3
Utile
désolé, oui.

j'ai adatpé mon code a ton exemple, mais il faut en fait utiliser MouseDown et non MouseUp

Renfield - Admin CodeS-SourceS - MVP Visual Basic
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de Renfield
cs_rocky42 97 Messages postés jeudi 28 juin 2007Date d'inscription 7 mars 2011 Dernière intervention - 4 janv. 2010 à 11:26
0
Utile
Pourée tu etre plus claire dans se que tu veut faire ?

Tu veut detecter le click droits dans une textbox ces sa ?
Commenter la réponse de cs_rocky42
Lokomass 191 Messages postés jeudi 7 janvier 2010Date d'inscription 15 mai 2013 Dernière intervention - 4 janv. 2010 à 11:29
0
Utile
En fait, j'ai réussi à faire ceci, cela fonctionne a moitié, car il affiche le résultat du clipboard dans le textbox, le traite et le réaffiche une fois traitée, j'aimerai qu'il m'affiche juste le Clipboard une fois traité :


Private Sub txtTerm_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
Dim Test As String
Select Case Button
Case 2 'Click  droit
Test = Clipboard.GetText
Call Coller(Test)
End Select
End Sub


Private Function Coller(Trou As String)
    Dim Tableau() As String
    Dim i As Integer
    Tableau = Split(Trou, vbCrLf)
    For i = 0 To UBound(Tableau)
        Conf.MSComm1.Output = Tableau(i) & vbCrLf
        Sleep (50)
    Next i
End Function
Commenter la réponse de Lokomass
cs_rocky42 97 Messages postés jeudi 28 juin 2007Date d'inscription 7 mars 2011 Dernière intervention - 4 janv. 2010 à 11:59
0
Utile
Tu peut esayer avec un replace aux pire
Non ?
Commenter la réponse de cs_rocky42
Renfield 17307 Messages postés mercredi 2 janvier 2002Date d'inscription 18 janvier 2017 Dernière intervention - 4 janv. 2010 à 12:48
0
Utile
Je ne vois pas où tu affecte le contenu du clipboard 'traité'
dans la zone de texte, là ...

en dehors de cela, effectuer une action sur clic droit autre que d'afficher un menu contextuelle me laisse a penser que ton interface perds de son intuitivité : elle ne s'incruste aps dans le look&feel de Windows, non ?


Renfield - Admin CodeS-SourceS - MVP Visual Basic
Commenter la réponse de Renfield
Lokomass 191 Messages postés jeudi 7 janvier 2010Date d'inscription 15 mai 2013 Dernière intervention - 4 janv. 2010 à 13:04
0
Utile
En fait je ne l'affecte pas vraiment a la zone de texte mais je l'envoi au port Comm.
Je n'ai pas mis l'affichage mais voila la fonction :

' L'événement OnComm est utilisé pour récupérer des événements et des erreurs de communication.
Private Static Sub MSComm1_OnComm()
    ' Sélectionne en fonction de la propriété CommEvent.
    Select Case MSComm1.CommEvent
        ' Messages d'événement.
        Case comEvReceive
            Buffer = MSComm1.Input
            'Debug.Print "Réception - " & StrConv(Buffer, vbUnicode)
            ShowData txtTerm, Buffer
        Case comEvSend
        Case comEvCTS
    End Select
End Sub


Et en fait je me demande si ça n'est pas mieux d'interdire le click droit completement, pour controler le coller en tant qu'evenement de touche "Alt+V" par exemple, donc est ce possible d'interdire me clique droit sur ma textbox ?

J'ai fait ceci mais ca ne l'empeche pas :s

Private Sub txtTerm_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = 2 Then Exit Sub
End Sub
Commenter la réponse de Lokomass
Renfield 17307 Messages postés mercredi 2 janvier 2002Date d'inscription 18 janvier 2017 Dernière intervention - 4 janv. 2010 à 13:35
0
Utile
faut passer par du SubClassing si tu veux le faire...
mais je ne suis pas convaincu que cette solution soit bonne.

pourquoi un click droit ferait un 'coller' c'est pas évident, si ?

Renfield - Admin CodeS-SourceS - MVP Visual Basic
Commenter la réponse de Renfield
Lokomass 191 Messages postés jeudi 7 janvier 2010Date d'inscription 15 mai 2013 Dernière intervention - 4 janv. 2010 à 13:49
0
Utile
Je vais faire encore autrement, je compte enlever carément le menu Windows du click droit et en faire un spécial, comme ça je controle avant chaque action ce qui se passe.

Seulement (j'ai fais un autre post) lorsque je fais click droit, et bien les deux menus s'affichent, celui de Windows et le mien :

Private Sub txtTerm_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = 2 Then
    PopupMenu Conf.Cacher
End If
End Sub


Comme tu t'en doute j'aimerai qu'il n'y ait que le mien !
Commenter la réponse de Lokomass
Renfield 17307 Messages postés mercredi 2 janvier 2002Date d'inscription 18 janvier 2017 Dernière intervention - 4 janv. 2010 à 14:08
0
Utile
deux solutions :

Private Declare Function ReleaseCapture Lib "user32.dll" () As Long

Private Sub txtTerm_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = vbRightButton Then
    ReleaseCapture
    PopupMenu Conf.Cacher
End If
End Sub


et

Private Sub txtTerm_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = vbRightButton Then
    txtTerm.Enabled = False
    txtTerm.Enabled = True
    PopupMenu Conf.Cacher
End If
End Sub


Renfield - Admin CodeS-SourceS - MVP Visual Basic
Commenter la réponse de Renfield
Lokomass 191 Messages postés jeudi 7 janvier 2010Date d'inscription 15 mai 2013 Dernière intervention - 4 janv. 2010 à 14:16
0
Utile
Merci pour ta réponse, mais dans mon code, il y a encore l'affichage des deux menus, au premier click droit, celui de Windows, et au deuxième click droit le mien.
Commenter la réponse de Lokomass
Lokomass 191 Messages postés jeudi 7 janvier 2010Date d'inscription 15 mai 2013 Dernière intervention - 4 janv. 2010 à 14:25
0
Utile
C'est parfait, un très grand merci à toi !!!!!!!!
Commenter la réponse de Lokomass

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.