Op deze website gebruiken we cookies om content en advertenties te personaliseren, om functies voor social media te bieden en om ons websiteverkeer te analyseren. Ook delen we informatie over uw gebruik van onze site met onze partners voor social media, adverteren en analyse. Deze partners kunnen deze gegevens combineren met andere informatie die u aan ze heeft verstrekt of die ze hebben verzameld op basis van uw gebruik van hun services. Meer informatie.

Akkoord

Vraag & Antwoord

Programmeren

[VB6] Key-Event op gelockte ComboBox ?!

Anoniem
Dennis tS
6 antwoorden
  • 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
  • Wat je kunt doen is op het on_key_down event kijken of er op de pijltjes toets geklikt is en dan controleren welk tekstbox de focus heeft en dan laten verspringen.
  • Dat is het hem juist.
    Er treedt helemaal geen KeyDown event op.
    Ook niet van het Form zelf.
  • Dan heb je waarschijnlijk iets niet goed staan, want een pijltjestoets geeft zeker wel een event.

    Mischien in je formulier eigenschappek Key Preview niet aan staan :?
  • 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)
  • 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]

Beantwoord deze vraag

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.