dmiodon
Messages postés5Date d'inscriptionmardi 6 mai 2003StatutMembreDernière intervention16 mai 2008
-
16 mai 2008 à 12:12
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 2021
-
16 mai 2008 à 15:37
Bonjour,
J'ai créé un contrôle utilisateur pour remplacer les boutons de commandes standards. Mais j'ai un problème : je n'arrive pas à utiliser correctement Default et Cancel de la même façon que les boutons standards. J'ai parcouru une peu le site et le net mais je n'arrive pas à résoudre mon problème.
J'ai bien mis DefaultCancel à True pour mon contrôle. J'ai donc bien accès à Default et Cancel quand je place mon contrôle dans un formulaire. Mais si je mets Defaut à True, mon contrôle ne réagit que si sa fonction AccessKeyPress est définie (en gérant la touche de code 13). Et dans ce cas, que je mette Default à True ou False ne change rien. Pire, si je rajoute un bouton standard ou un autre de mes boutons et que je le mets en Default=True, c'est toujours le premier bouton qui réagit.
Bref, je n'arrive pas à m'en sortir, j'ai besoin de votre aide...
A voir également:
Runtimeerror: too early to create variable: no default root window
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202174 16 mai 2008 à 12:27
pas grand chose a faire, pourtant :
Private Sub UserControl_AccessKeyPress(KeyAscii As Integer)
If KeyAscii = vbKeyEscape Then
'# On a pressé Echap
ElseIf KeyAscii = vbKeyReturn Then
'# On a pressé Entrée
Else
'# On a pressé Alt+toucheD'accès
End If
End Sub
dmiodon
Messages postés5Date d'inscriptionmardi 6 mai 2003StatutMembreDernière intervention16 mai 2008 16 mai 2008 à 15:36
Bon je viens de trouver la solution à mon problème...
A priori mon premier bouton avait toujours le focus. Je ne le voyais pas car je ne gérais pas la notion de focus sur mon contrôle... Donc en fait quand j'appuyais sur ENTREE juste après l'affichage de ma fenêtre, j'étais toujours sur lui, voilà pourquoi c'était toujours lui qui répondait...
En tout cas merci Renfield ! Ce merci vaut aussi (j'en profite) pour toutes tes sources/remarques/réponses
qui m'ont été souvent utiles... Merci.
dmiodon
Messages postés5Date d'inscriptionmardi 6 mai 2003StatutMembreDernière intervention16 mai 2008 16 mai 2008 à 14:44
Oui Renfield, j'avais bien compris le principe. J'avais d'ailleurs essayé à peu près ce que tu dis :
Private Sub UserControl_AccessKeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
RaiseEvent Click
End If
End Sub
Malheureusement, sur mon formulaire j'ai 2 boutons (2 de mes contrôles), et donc c'est toujours le premier qui est appelé, même si le premier à Default=False et le second Default=True.