Ga naar inhoud

[VB6] Key-Event op gelockte ComboBox ?!


anoniem

Aanbevolen berichten

Hey Folks! Ik wil graag door mijn form [i:57737fb62f]wandelen[/i:57737fb62f] met de cursortoetsen (up en down). het form is opgebouwd uit TextBoxen en ComboBoxen die run-time geladen worden en recht onderelkaar geplaatst worden (stuk of 40 totaal, dat kan verschillen) Sommige Boxen worden automatisch ingevuld en gelockt. Na opslaan van alle gegevens, mogen sommige Boxen niet meer veranderd worden (dus worden bij [i:57737fb62f]inzien[/i:57737fb62f] ook gelockt). Wat ik wil, is dat ik met de cursortoetsen (up en down) hetzelfde kan doen wat je normaal met tab en shift-tab doet, echter... Er treedt geen enkel Event op, bij de gelockte ComboBoxen, waardoor ik geen Tab kan simuleren. (de gelockte Boxen overslaan, dmv TabStop=False is geen optie, want om de gegevensinvoer te controleren achteraf is het gewenst om ze 1 voor 1 door te kunnen lopen) Weet iemand een truckje om dit toch te kunnen doen. Bedankt voor de moeite! ROB
Link naar reactie
Wat Rob zegt klopt. Er zal geen Key_Down event optreden. De reden is volkomen logisch. Niet iedereen wil overal de muis voor gebruiken en daarom is het mogelijk om met de pijltjestoetsen door de ListItems heen te scrollen. Een ander voorbeeld is dat je op letters kunt drukken om zo naar hogere of lagere items te scrollen zonder dat je moet zoeken met je muis. Lees de remarks van het KeyDown events maar eens in de MSDN Help. Daar staat 3 knoppen die buiten het event vallen: Tab, Enter in het geval van een Default Button en Escape in het geval van een Cancel Button. Laat dat nu net de toetsen zijn waar jou applicatie wel op zal reageren ... Het 'gedrag' dat jij in je programma wilt stoppen, gaat in tegen het ontwerp van de combobox en andere lijstgeorienteerde controls. Bij andere controls waar je niet door lijsten hoeft te scrollen zoals buttons, zul je zien dat het pijltje omlaag automatisch werkt en dat je helemaal geen Tab hoeft te simuleren. Het is niet het antwoord waar je op zit te wachten, maar ik denk dat je a) het plan moet vergeten en gewoon op tab moet drukken, of b) je user interface veranderen en minder comboboxes te gebruiken (je zegt tenslotte dat een aantal van dingen automatisch ingevuld worden en vervolgens toch niet meer gewijzigd)
Link naar reactie
Ik kan er niet meer of minder boxen van maken, het scherm wordt run-time opgebouwd adhv allerlei afspraken die landelijk zijn vastgelegd en die kunnen per organisatie verschillen. Dus kies je een andere organisatie, krijg je weer een hele andere samenstelling van boxen. Het 'gevoel' dat ik er in wil leggen komt voort uit andere applicaties (van collega) die naast deze draaien (de mensen zijn eraan gewend). Echter, bij de andere applicaties wordt simpelweg Tabstop=False gezet op comboboxen omdat er toch maar een paar zijn. [b:9ada50338c]Zijn er geen API's voor dit soort doeleinden?[/b:9ada50338c]
Link naar reactie
  • 3 weken later...
> Er treedt geen enkel Event op, bij de gelockte ComboBoxen, waardoor ik geen Tab kan simuleren. (de gelockte Boxen overslaan, dmv TabStop=False is geen optie, want om de gegevensinvoer te controleren achteraf is het gewenst om ze 1 voor 1 door te kunnen lopen) Je kunt VOORDAT je naar een volgend control gaat, kijken of dat gelocked is, en het vervolgens overslaan. Zo ondervang je het feit dat gelockte controls geen key events meer genereren. Bij het nakijken van je form gebruik je de Controls collectie (zie VB help bestand) om alle controls te checken, b.v. via if Controls(n).Type is Textbox Then .... of via If Controls(n).Name = "...." Then of via b.v. het Tag property waarin je iets zet dat je in deze routine kunt gebruiken om de juiste controls eruit te halen, enzovoort. Succes! Dennis
Link naar reactie

Om een reactie te plaatsen, moet je eerst inloggen

Gast
Reageer op dit topic

×   Geplakt als verrijkte tekst.   Herstel opmaak

  Er zijn maximaal 75 emoji toegestaan.

×   Je link werd automatisch ingevoegd.   Tonen als normale link

×   Je vorige inhoud werd hersteld.   Leeg de tekstverwerker

×   Je kunt afbeeldingen niet direct plakken. Upload of voeg afbeeldingen vanaf een URL in

  • Populaire leden

    Er is nog niemand die deze week reputatie heeft ontvangen.

  • Leden

    Geen leden om te tonen

×
×
  • Nieuwe aanmaken...