Toon posts:

[ VB ] Validate probleem

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik begin ineens een beetje :r te krijgen van VB. Ik heb een usercontrol gemaakt die verschillende types invoer aankan ( telefoonveld, email, numeriek, etc ). De invoer hiervan wordt dan dus ook nog gechecked door het validate event. Maar dat kots event wordt dus gewoon niet. Wat doe ik fout???

  • Crazy D
  • Registratie: Augustus 2000
  • Laatst online: 19:13

Crazy D

I think we should take a look.

Validate even wordt alleen geraised als de de control waar de focus naartoe gaat de "CausesValidation" property op true heeft staan.
MSDN:
Occurs before the focus shifts to a (second) control that has its CausesValidation property set to True.

Syntax

Private Sub object_Validate(KeepFocus As Boolean)

The Validate event syntax has these parts:

Part Description
object An object expression that evaluates to an object in the Applies To list.
KeepFocus Value that determines if the control loses focus. Setting KeepFocus to True specifies that the control retains the focus.


Remarks

The Validate event works in tandem with the CausesValidation property to prevent a control from losing the focus until certain criteria are met.

Important The Validate event only occurs when the control which is about to receive the focus has its CausesValidation property set to True
Ik vind het zelf overigens netter in de keydown en change events de belangrijkste zooi al te filteren. Voorkomen dat een control de focus verliest vind ik nooit netjes. Netter is het imho om in de lostfocus nog een keer te controlleren of alles goed is, en zo niet, de control een ander kleurtje oid geven dat het duidelijk is dat er iets niet klopt. En pas als er op Save wordt geklikt (of zo) meldingen dat er iets niet goed is te geven. Anders kun je niet eens ff naar een ander veld toespringen om dat eerst te vullen, en dan terug te gaan om bv het email adres verder in te vullen.

Exact expert nodig?


Verwijderd

Topicstarter
Op dinsdag 18 december 2001 12:11 schreef Crazy_D het volgende:
Validate even wordt alleen geraised als de de control waar de focus naartoe gaat de "CausesValidation" property op true heeft staan.
Dat heb ik gecontroleerd en dat staat ook goed. Is wel een goede tip trouwens *D
Ik vind het zelf overigens netter in de keydown en change events de belangrijkste zooi al te filteren. Voorkomen dat een control de focus verliest vind ik nooit netjes.
Ik heb dat probleem alleen met bijvoorbeeld de validatie op een e-mail adres. Pas aan het einde kan ik kijken of de @ er staat, en de puntjes allemaal juist staan etc. Dat is niet op de keydown te doen ( hooguit op de lostfocus, maar daar heb ik ook al de nodige problemen mee ). Met een telefoonnummer enzo kan je gewoon karakters controleren, daar zou keypress wel + zijn, maar gaat hier niet op.
Netter is het imho om in de lostfocus nog een keer te controlleren of alles goed is, en zo niet, de control een ander kleurtje oid geven dat het duidelijk is dat er iets niet klopt. En pas als er op Save wordt geklikt (of zo) meldingen dat er iets niet goed is te geven. Anders kun je niet eens ff naar een ander veld toespringen om dat eerst te vullen, en dan terug te gaan om bv het email adres verder in te vullen.
Krijg nou wat... daar geef je me toch ineens wel een leuk idee, met keypress kijk ik of het "voorlopig" voldoet, zoniet toon ik het rood, bij de update knop ga ik gewoon al het rode doorlopen en controleren... is wel een B-) optie!!! Alleen ik blijf het erg vreemd vinden dat het VALIDATE event niet werkg :?

Thnx. voor je reactie!

  • Crazy D
  • Registratie: Augustus 2000
  • Laatst online: 19:13

Crazy D

I think we should take a look.

En als je dan nog, als het veld niet goed is, onder de rechtermuisknop een tooltip verstopt met de melding wat er niet goed is, aap je Exact na :P

Trouwens nog ff gauw getest, paar textboxjes op de form, en 1 usercontrol met een textbox erop, en het validate event wordt gewoon geraised voor de text op de usercontrol.
Alleen hebben niet alle controls de causesvalidation property dus ik kan me voorstellen dat dat niet het meest veilige event is. Lost focus krijg je altijd.
(en dan kun je meteen een handig IsValid property in je control inbouwen ;))

Exact expert nodig?


Verwijderd

Topicstarter
Je idee is wel geweldig! Ik heb het nu zoals je zegt, en het ziet er echt mega- gaaf uit. Ben er echt blij mee! Is inderdaad veel netter dan zo'n "Je mag niet van mij af want je validatie is niet goed". Heb dat hele vlut validate niet eens meer nodig, zie het hele nut er niet eens meer van in. Zo werkt het prachtig. Thnx!