begin process at 2012 02 17 08:39:54
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Divers

 > POPUP MENU COMPLET POUR RICHTEXTBOX (COPIER,COLLER,ETC...)

POPUP MENU COMPLET POUR RICHTEXTBOX (COPIER,COLLER,ETC...)


 Information sur la source

Note :
Aucune note
Catégorie :Divers Classé sous :popup, menu, richtextbox, sendkeys, contextmenu Niveau :Débutant Date de création :26/05/2005 Date de mise à jour :26/05/2005 19:40:23 Vu / téléchargé :9 115 / 1 284

Auteur : Danyz

Ecrire un message privé
Site perso
Commentaire sur cette source (9)
Ajouter un commentaire et/ou une note

 Description

Cliquez pour voir la capture en taille normale
Un inconvenient du RichTextBox est qu'il n'y a pas de menu avec le click droit de la souris. Au début j'avais recréer les fonction copier , coller , couper , etc... , mais j'ai ensuite eu l'idée d'utiliser SendKeys pour appeller les raccourcis clavier de Windows (CTRL+ C , CTRL + V , etc...). De cette maniére les fonctions windows sont employés et le menu reagit exactement pareil que tout autre application , ce qui ne perturberat pas l'utilisateur final ;)
Le menu du click droit fonctionne exactement pareil que celui du TextBox classique.

Source

  • Private Sub mnuPopup_Click(Index As Integer)
  • ' Le menu utilisé pour le popup est un groupe de controle ,
  • ' on recupère l'index pour assigner une commande au menu.
  • ' En utilisant SendKeys , on evite de programmer les fonctions
  • ' de copier - coller en utlisant les raccourci clavier
  • ' (CTRL + C , CTRL + V , etc...)
  • '
  • ' Pour rappel : CTRL + Z = Annuler
  • ' CTRL + X = Couper
  • ' CTRL + C = Copier
  • ' CTRL + V = Coller
  • ' CTRL + A = Selectionner tout
  • Select Case Index
  • Case 0
  • SendKeys "^(z)" ' le ^ signifie la touche CTRL
  • Case 1
  • ' Separateur ' pour pouvoir indexer le menu , il faut que les menus indéxés
  • Case 2 ' doit aussi indexer les separateurs soit consecutifs, donc on
  • SendKeys "^(x)"
  • Case 3
  • SendKeys "^(c)"
  • Case 4
  • SendKeys "^(v)"
  • Case 5
  • SendKeys "{DEL}" ' ici c'est la touche SUPPR
  • Case 6
  • ' Separateur
  • Case 7
  • SendKeys "^(a)"
  • End Select
  • End Sub
  • Private Sub RichTextBox1_MouseUp(Index As Integer, Button As Integer, Shift As Integer, x As Single, y As Single)
  • ' Ici on met Enabled sur True ou False selon l'etat du RichtTextBox
  • ' On active le menu Copier si du texte est selectionné , etc....
  • '
  • ' Pour que le popup s'affiche sur n'importe quel RichTextBox ,
  • ' ils doivent tous faire partie de meme groupe de controles
  • With RichTextBox1(Index)
  • mnuPopup(0).Enabled = True
  • mnuPopup(2).Enabled = IIf(.SelLength > 0, True, False)
  • mnuPopup(3).Enabled = IIf(.SelLength > 0, True, False)
  • mnuPopup(4).Enabled = IIf(Clipboard.GetText <> "", True, False)
  • mnuPopup(5).Enabled = IIf(.SelLength > 0, True, False)
  • mnuPopup(7).Enabled = IIf(Len(.Text) > 0, True, False)
  • If .Locked = True Then
  • mnuPopup(0).Enabled = False
  • mnuPopup(2).Enabled = False
  • mnuPopup(4).Enabled = False
  • mnuPopup(5).Enabled = False
  • End If
  • End With
  • ' Et on affiche le menu si le clik droit est selectionné
  • If Button = 2 Then
  • PopupMenu mnuRichTextBox
  • End If
  • End Sub
Private Sub mnuPopup_Click(Index As Integer)

' Le menu utilisé pour le popup est un groupe de controle ,
' on recupère l'index pour assigner une commande au menu.
' En utilisant SendKeys , on evite de programmer les fonctions
' de copier - coller en utlisant les raccourci clavier
' (CTRL + C , CTRL + V , etc...)
'
' Pour rappel : CTRL + Z = Annuler
'               CTRL + X = Couper
'               CTRL + C = Copier
'               CTRL + V = Coller
'               CTRL + A = Selectionner tout

Select Case Index
   Case 0
      SendKeys "^(z)"       ' le ^ signifie la touche CTRL
   Case 1
      ' Separateur          ' pour pouvoir indexer le menu , il faut que les menus indéxés
   Case 2                   ' doit aussi indexer les separateurs soit consecutifs, donc on
      SendKeys "^(x)"
   Case 3
      SendKeys "^(c)"
   Case 4
      SendKeys "^(v)"
   Case 5
      SendKeys "{DEL}"      ' ici c'est la touche SUPPR
   Case 6
      ' Separateur
   Case 7
      SendKeys "^(a)"
End Select

End Sub

Private Sub RichTextBox1_MouseUp(Index As Integer, Button As Integer, Shift As Integer, x As Single, y As Single)

' Ici on met Enabled sur True ou False selon l'etat du RichtTextBox
' On active le menu Copier si du texte est selectionné , etc....
'
' Pour que le popup s'affiche sur n'importe quel RichTextBox ,
' ils doivent tous faire partie de meme groupe de controles

With RichTextBox1(Index)
   mnuPopup(0).Enabled = True
   mnuPopup(2).Enabled = IIf(.SelLength > 0, True, False)
   mnuPopup(3).Enabled = IIf(.SelLength > 0, True, False)
   mnuPopup(4).Enabled = IIf(Clipboard.GetText <> "", True, False)
   mnuPopup(5).Enabled = IIf(.SelLength > 0, True, False)
   mnuPopup(7).Enabled = IIf(Len(.Text) > 0, True, False)
   If .Locked = True Then
      mnuPopup(0).Enabled = False
      mnuPopup(2).Enabled = False
      mnuPopup(4).Enabled = False
      mnuPopup(5).Enabled = False
   End If
End With



' Et on affiche le menu si le clik droit est selectionné

If Button = 2 Then
   PopupMenu mnuRichTextBox
End If

End Sub

 Conclusion

Pour rendre tout ca encore plus beau , utilisez l'OCX de NoFutur pour les menus au look XP (les 2 popup du bas dans la capture d'écran)
>> http://www.vbfrance.com/code.aspx?id=16924

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Historique

26 mai 2005 19:40:23 :
-

 Sources du même auteur

Source avec Zip Source avec une capture ASTUCE IMAGELIST COMCTL32.OCX
Source avec Zip Source avec une capture RECHERCHE DE PAROLES DE CHANSONS
Source avec Zip Source avec une capture LABEL LINK TRÉS SIMPLE, SANS OCX NI RIEN
Source avec Zip Source avec une capture HEXA / DECIMAL / VB HEXA / RVB - TOUTES LES CONVERSIONS DE T...
Source avec Zip Source avec une capture CALENDRIER (SANS OCX , GERE LES ANNÉES BISSEXTILES)

 Sources de la même categorie

Source avec Zip TEXTBOX EN NUMÉRIQUE par 320C
Source avec Zip DÉCIMAL TO HEXDECIMAL par loulou27200
SOUS-TITRES : INCRÉMENTATION DE TOUTES LES CHAÎNES DE CARACT... par ALMIRA
Source avec Zip Source avec une capture EVALUER UN NOMBRE D'OBJETS AVEC UNE BALANCE ET DEUX ÉCHANTIL... par lexsty
Source avec Zip Source avec une capture PETIT LOGICIEL DE DEVIS SANS BD par lololilizozo

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture MENU POPUP AVEC IMAGE par zork74
Source avec Zip Source avec une capture NETEXTRACT par Sechaud
Source avec Zip Source avec une capture MENU EN POPUP AVEC IMAGES SANS PASSER PAR LE CRÉATEUR DE MEN... par PCPT
Source avec Zip PROGRAMME SIMPLE POUR CRÉER UN POPUP MENU AVEC DES SOUS-MENU... par besqueut
Source avec Zip Source avec une capture SIMULATION DE COMBOBOX DANS UN LISTVIEW VIA CLICK SUR ICÔNE ... par ssauvage

Commentaires et avis

Commentaire de max12 le 27/05/2005 01:58:41 administrateur CS

Il existe, il faut le cocher dans les propriétés, je sais plus laquel. Mais il est en anglais par contre.

A+

Commentaire de Danyz le 27/05/2005 02:43:30

ha.... je ne le savais pas

Commentaire de bouv le 27/05/2005 08:21:08

Juste un petit repproche.
Au lieu de
SendKeys "^(c)"
j'aurais préféré
Clipboard.SetText (RichTextBox1.SelText)
Et pour récupérer la valeur
Clipboard.GetText

C'est beaucoup plus propre que des SendKeys.

Bonne prog
++

Commentaire de Danyz le 27/05/2005 19:49:29

En effet, la propriété AutoVerbMenu du RichTextBox doit etre sur True pour afficher le menu contextuel du click droit , j'avais pas vu ca :(
(D'aillleurs le menu est en francais...)

Ma source perde de son interet :P (si ce n'est de pouvoir modifier le menu contextuel)

Bouv j'ai utiliser les SendKeys aussi pour le presse papier pour mettre le moins de code possible.
Quand tu fait un coller par exemple , il faut prendre en compte l'emplacement du curseur , donc decouper la chaine de caractere du richtextbox , inserer le presse papier , si du texte etait selectionné , il faut le remplacer par le presse papier etc...
Tout ca est fait automatiquement en faisant un CTRL + V.
Pour le copier on peut à la limite metttre un clipboard.settext

Commentaire de bouv le 28/05/2005 13:29:45

oui je sais c'est un peu plus complexe. Enfin c'est une opinion perso mais quand je peux eviter les sendkeys je le fait.
Sinon c'est pas mal.

Bonne prog
++

Commentaire de NoFutur le 30/05/2005 18:20:55

Salut,

Moi je crois que ta source ne perd pas de son intérêt car à chaque fois que j'utilise le RichtexBox je me programme toujours un menu contextuel a côté car il m'arrive parfois de me retrouver avec le menu par défaut mais en anglais alors pour éviter les petits défaut je programme le menu comme tu as fait :-)

Ya pas à dire mais ça donne bien avec cet OCX quand même :o)

Bonne prog !
@plus

Commentaire de tuneserapasmonnom le 25/08/2006 10:02:17

j'aimerai savoir comment tu fais pour que ta form soit viollette sur la photo et jolie, différente de d'habitude

Commentaire de Danyz le 25/08/2006 10:05:58

C'est un Theme pour XP, rien à voir avec VB ;)

http://www.tgtsoft.com/prod_sxp.php

++

Commentaire de tuneserapasmonnom le 28/08/2006 16:24:01

merci bien

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

PopUp Menu [ par Yerffuaj ] Bonjour, je ne connais pas très bien VB mais je fais un stage sous VB6 et il faudrait que j'arrive à augmenter la taille de police des popup menu qui Popup menu dans DBGrid ou équivalent [ par lolo ] Bonjour,je débute en VB6 et je voudrais faire un formulaire de visualisation/modification de données sur une table du style:MaTable: ID carac1 c Menus popup dans un MDIChild [ par Sandro ] Hello... je vais essayer de faire court :-)J'ai un p'ti soft MDI. Dans une feuille Child, je veux faire apparaître un menu Popup. J'y ajoute donc un m Popup menu [ par baba ] Comment peut on faire pour ajouter des icones dans un menu (popup) en VB ?Merci Popup menu qui ne disparait pas sous Win NT [ par clafouti ] J'ai le problème suivant : J'ai une icone dans le system tray (a coté de l'horloge). Lorsque je clique droit sur l'icone, je fait apparaître un popup Popup menu et fenetre sans border [ par PKist ] Lorsque je fais un menu, cela ajoute des border a ma fenetre de projet.comment créer un menu sans que cela n'ajoute de border ? menu popup [ par joflo ] si l'un de vous sait comment faire mercij'ai créé un menu avec le créateur de VB6 que je fait apparaitre sous le bouton sur lequel je cliquema questi Popup menu [ par sebleboss2002 ] Salut tout le monde !Je suis embêté car je veux créer un popup menu lors d'un clic sur un bouton, mais chaque fois :Erreur 428 : Le menu contextuel do Menu popup [ par rivierem ] Voila je voudrais creer un menu popup dynamiqueJ'arrive a le cree mais il ne s'affiche pas!!!Comment faire voila ma sourcePublic Sub charge_menu_ext fermer un popup menu [ par patrick ] Bonjour, Juste une petite question : j'aimerais fermer par programme un menu "popup" !merci d'avance, patrick Moirehttp:\\jeux.cartes.free.fr


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,920 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales