OVH Cloud OVH Cloud

Ctrl-A sur un Textbox

2 réponses
Avatar
xx
Bonjour

Comment peut-on implementer sur une TextBox la fonction Ctrl-A (Select All),
equivalent de Right-Click|Select-All.

J'ai une solution qui est assez batarde.
De plus, je voudrais que la touche de fonction ne soit pas "Ctrl-A", mais la
touche windows standatd (eg en Espagnol, il s'agit de Ctrl-E IIRC)

Merci

2 réponses

Avatar
xx
"François Picalausa" a écrit dans le message de
news:
Bonjour/soir,

En ce qui concerne la sélection, deux solutions sont possibles.
La plus simple, en VB pur, est AMHA celle à utiliser. Toutefois, j'y


ajoute
la méthode par API plus compliquée mais pour le même résultat:

'Dans une feuille avec
' 2 commandbuttons (Command1, Command2)
' 1 textbox (Text1)
Option Explicit

Private Const EM_SETSEL = &HB1
Private Declare Function SendMessage _
Lib "user32" _
Alias "SendMessageA" _
( _
ByVal hwnd As Long, _
ByVal wMsg As Long, _
ByVal wParam As Long, _
lParam As Any _
) _
As Long

Private Sub Command1_Click()
SendMessage Text1.hwnd, EM_SETSEL, 0, ByVal -1&
Text1.SetFocus
End Sub

Private Sub Command2_Click()
Text1.SelStart = 0
Text1.SelLength = Len(Text1.Text)
Text1.SetFocus
End Sub



Cela regle le probleme de la selection (je savais faire)
mais cela introduit un bouton de commande, dont je ne veux pas.

Je sais faire avec un menu et le raccourci Ctrl-A
-mais le menu est visible
ce dont je ne veux pas
et le rendre invisible neutralise le raccourci
-Ctrl-A est hard-code
ce qui ne satisfait pas mon requisite 'international'

Et bien sur j'ai plusieurs textbox, et le Ctrl-A doit s'appliquer a celle
avec le focus......

Le truc semblerait d'attacher le raccourci au menu implicitement attache a
chaque textbox ... mais la je ne sais pas faire ????
Avatar
François Picalausa
Bonjour/soir,

mais cela introduit un bouton de commande, dont je ne veux pas.



Il suffit de déplacer le code

Je sais faire avec un menu et le raccourci Ctrl-A
-mais le menu est visible
ce dont je ne veux pas
et le rendre invisible neutralise le raccourci



Essaye avec KeyPreview=True sur la feuille
Dans le Form_KeyDown, tu pourra alors, en fonction des touches pressées
sélectionner ce qu'il faut.

-Ctrl-A est hard-code
ce qui ne satisfait pas mon requisite 'international'



J'ai cherché à ce propos mais n'ai rien trouvé.....

Le truc semblerait d'attacher le raccourci au menu implicitement
attache a chaque textbox ... mais la je ne sais pas faire ????



Tu peux regarder du côté des API GetMenu, le message WM_COMMAND mais ça me
semble bien compliqué et ça ne fera pas un raccourci "internationnal".

--
François Picalausa (MVP VB)
FAQ VB : http://faq.vb.free.fr
MSDN : http://msdn.microsoft.com