Toon posts:

[VB .NET] Tab en TabIndex overriden?

Pagina: 1
Acties:

Verwijderd

Topicstarter
Joe allemaal,

Voor een klein projectje van me is het een eis om een "slimme" tabvolgorde te hebben. Ik wil dus niet de statische TabIndex gebruiken, maar eigenlijk moet er een functie aangeroepen worden die voor mij bekijkt (1) of de Tab-toets is ingedrukt van een control en (2) welke control focus moet krijgen.
Na wat gepruts met Handlers, KeyUp, KeyDown en KeyPress kwam ik erachter dat de Tab-toets niet zo makkelijk te vangen is. Ik zou van elke control op mijn form een nieuwe klasse moeten maken waarin de isInputKey(...) methode wordt override. Dat is natuurlijk geen doen!
Ik kan op internet geen andere, werkende manier vinden voor dit probleem, misschien dat jullie me een duwtje in de goede richting kunnen geven?

Alvast bedankt!

  • mulder
  • Registratie: Augustus 2001
  • Laatst online: 30-04 15:47

mulder

ik spuug op het trottoir

Kijk eens naar KeyPreview

oogjes open, snaveltjes dicht


Verwijderd

Topicstarter
Bedankt voor de tip. Dit zou zeker een oplossing geweest zijn, was het niet dat ik niet werk met een form, maar met een control. En de control kent geen "KeyPreview"...

  • mulder
  • Registratie: Augustus 2001
  • Laatst online: 30-04 15:47

mulder

ik spuug op het trottoir

Maar dat control ligt toch op een form. Die ontvangt de TAB, kijkt welk control de focus heeft en bepaalt wie de volgende krijgt.

oogjes open, snaveltjes dicht


Verwijderd

Topicstarter
Ja, maar de control wordt op meerdere (enkele tientallen) forms gebruikt, en ik wil graag dat de control van zichzelf bepaald wat de tabvolgorde wordt.

  • mulder
  • Registratie: Augustus 2001
  • Laatst online: 30-04 15:47

mulder

ik spuug op het trottoir

Zie niet zo hoe dat werkt. De control zal toch eens soort parent moeten hebben die vertelt welke children er nog meer zijn? Anders weet de control niet waar het heen moet?

oogjes open, snaveltjes dicht


Verwijderd

Topicstarter
Ik zie het alsvolgt:
1. form met control heeft focus
2. focus komt op control (myform.control.focus())
3. control zoekt uit welke textbox/button/etc. de focus moet krijgen
4. als de control het niet weet: vraag parent form

  • mulder
  • Registratie: Augustus 2001
  • Laatst online: 30-04 15:47

mulder

ik spuug op het trottoir

:) en ik zie het zo:
1) form met control heeft focus
2) tab word gedrukt
3) form krijgt tab en kijkt wie de focus heeft, wie de focus krijgt, en geeft die focus

oogjes open, snaveltjes dicht


Verwijderd

Topicstarter
Ja, dat begreep ik al ;)

Maar er is dus geen andere manier om het een klein beetje op mijn manier op te lossen?

  • mulder
  • Registratie: Augustus 2001
  • Laatst online: 30-04 15:47

mulder

ik spuug op het trottoir

Alleen jou puntje drie is anders. Waarom zou die control de informatie hebben om te bepalen welke control de volgende is? Dat is toch typisch informatie die bij het form hoort? En anders kun je de parent nog aan het control vragen als je dat perse wilt ;)

oogjes open, snaveltjes dicht


Verwijderd

Topicstarter
Maar dat betekent dat ik niet een control kan maken dat overal hetzelfde functioneert qua tabvolgorde. Ik zal dus op elk form waarop de control verschijnt de code moeten wijzigen... Dat klinkt me niet echt O.O. in de oren, wel?

  • mulder
  • Registratie: Augustus 2001
  • Laatst online: 30-04 15:47

mulder

ik spuug op het trottoir

Misschien moet je even uitleggen wat je dan precies wilt, wat voor controls hebben we het over? Wat is er speciaal aan de tab volgorde? Als een control altijd naar een vast control springt, zijn die in feite samen een control... gaat een beetje om de context :)

Bovendien als je die logica in die control wilt... zult je toch moeten overerven en dat wilde je juist niet

[ Voor 18% gewijzigd door mulder op 09-09-2005 21:58 ]

oogjes open, snaveltjes dicht

Pagina: 1