[VBA] Key.. event voor dyn.best.element

Pagina: 1
Acties:

  • J_Davelaar
  • Registratie: Maart 2001
  • Laatst online: 05-05 13:41
Ik hoop dat de titel een beetje duidelijk is.
Ik zit namelijk met het volgende probleem. Ik laat in VBA6 een form genereren met optionbuttons. Deze haal ik uit een txt bestand en koppel daar een click() event aan toe. Die events koppel ik met de oplossing uit een eerder topic Topic 776291 .

Dit werkt allemaal heel goed. Nu wil ik dus ook een keypress event toevoegen aan de besturingselementen zodat ik elke optie met een toets kan activeren. Ik ben al bekend met de accelerator optie maar wil graag werken met een enkele toets aanslag. Op een of andere manier wil het niet lukken als ik in de class een extra event toevoeg:

Visual Basic:
1
2
3
4
5
6
7
8
9
10
11
12
13
Public WithEvents oBtn As MSForms.OptionButton

Private Sub oBtn_Click()    
    insertText
End Sub

Private Sub oBtn_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
    insertText
End Sub

Private Function insertText()
    'Voegt een stuk text in    
End Function

Was ik maar een punt dan was ik het einde


  • Lister
  • Registratie: September 2001
  • Laatst online: 15-02-2022
Je wilt dus net zoiets als een Accelerator Key maar dan zelf maken?

Dan moet je niet in het KeyPress event van de optionbutton zijn, want die gaat alleen af als de betreffende optionbutton ook de focus heeft.

In VB (niet VBA) zou je normaal gesproken de KeyPreview of zoiets van een form aan zetten zodat elke keypress op welk control dan ook, eerst door het form zelf wordt beoordeeld. En in de keypress van het form kijk je dan welke actie je moet ondernemen afhankelijk van de ingetoetste key.

In VBA heb je volgens mij geen KeyPreview en zal je dus een algemene Keypress sub moeten maken die je in in de Keypress events van het form en alle controls op het form aanroept.
In die algemene Keypress sub zou je dan moeten kijken wat je moet doen aan de hand van de key, dan moet je waarschijnlijk je oEvents collectie doorlopen om de juiste combobox op te zoeken.

  • KingRichard
  • Registratie: September 2002
  • Laatst online: 21-03-2025

KingRichard

former Duke of Gloucester

Ik weet niet zeker of dit ook werkt met optionbuttons, maar met gewone knoppen kun je dit bewerkstelligen door een ampersand in de Caption op te nemen. Zoals [&Save], [S&ave As] en [E&xit].

[ Voor 3% gewijzigd door KingRichard op 23-07-2004 23:01 . Reden: ampersand!!! ]

a horse! a horse! my kingdom for a horse! (exeunt)
[got.profile] | [t.net.profile] | [specs]


  • J_Davelaar
  • Registratie: Maart 2001
  • Laatst online: 05-05 13:41
Het werken met een ampersand werkt bij mij niet met een optionbutton. Ik zal dus toch even goed moeten gaan kijken naar de oplossing van Lister.

Ik edit nog wel even de oplossing als het gelukt is.

Was ik maar een punt dan was ik het einde