Toon posts:

[VB.NET] TextField.Focus

Pagina: 1
Acties:

Verwijderd

Topicstarter
weet iemand hoe je in een windows applicatie, de focus bij een bepaalde veld houd?

Voorbeeld ik heb een invoer field in een form. Deze mag alleen integers ontvangen. Als een gebruiker een niet Integer waarde invoert moet de focus bij dat invoer veld blijven totdat de gebruiker uiteindelijk een Integer in voert.

*****************************************

If isNumeric(integerInvoerWaarde) then
niks aan de hand
else
??Me.textfieldName.focus??
End if

*****************************************

Iemand??

Verwijderd

.Select :?

Verwijderd

Topicstarter
Op maandag 22 april 2002 15:19 schreef Yarvieh het volgende:
.Select :?
Bedoel je dit?

textfieldname.Select(0,text.lenght)??

alleen dit werkt niet

  • Crazy D
  • Registratie: Augustus 2000
  • Laatst online: 09-09 16:14

Crazy D

I think we should take a look.

Hmm ten eerste heb ik een verschrikkele hekel aan programma's waarbij je verplicht bent iets in te voeren voordat je naar een volgend veld kan gaan... (helemaal als die waarde bv een debiteurnummer is, en geen debiteuren in je db hebt en dus geen geldige waarde in kan voeren... ), ten tweede kun je een hoop afvangen in keydown events ed, zodat er alleen nummertjes in te voeren zijn. En ten derde is het "netter" (niet alleen imho maar ook wat ik veel hoor) om bij de Ok button (of whatever) nog even alle invoer te controlleren, en dan netjes een msgboxje te geven met "de volgende gegevens zijn niet of niet juist gevuld" oid. Misschien nog de textbox een ander kleurtje geven (achtergrond kleur rood of zo, of een andere indicatie, uitroeptekentje ervoor of zo). Iig alles beter dan een veld waar je niet uit kan tot je de juiste waarde hebt ingevoerd...

Exact expert nodig?


Verwijderd

Op maandag 22 april 2002 16:02 schreef D-Original het volgende:
Bedoel je dit?
textfieldname.Select(0,text.lenght)??
nee, ik bedoel dit
code:
1
textfieldname.Select()

Verwijderd

Topicstarter
Op maandag 22 april 2002 16:17 schreef Crazy_D het volgende:
Hmm ten eerste heb ik een verschrikkele hekel aan programma's waarbij je verplicht bent iets in te voeren voordat je naar een volgend veld kan gaan... (helemaal als die waarde bv een debiteurnummer is, en geen debiteuren in je db hebt en dus geen geldige waarde in kan voeren... )
, ten tweede kun je een hoop afvangen in keydown events ed, zodat er alleen nummertjes in te voeren zijn. En ten derde is het "netter" (niet alleen imho maar ook wat ik veel hoor) om bij de Ok button (of whatever) nog even alle invoer te controlleren, en dan netjes een msgboxje te geven met "de volgende gegevens zijn niet of niet juist gevuld" oid. Misschien nog de textbox een ander kleurtje geven (achtergrond kleur rood of zo, of een andere indicatie, uitroeptekentje ervoor of zo). Iig alles beter dan een veld waar je niet uit kan tot je de juiste waarde hebt ingevoerd...
Volgens mij heb ik het niet goed beschreven of je hebt het verkeerd begrepen::

waar het om gaat is dat de textbox waarde een soort login veld je is. En in dit geval kan je dus alleen maar info opvragen als je een geldige id invoert. dus wat ik wil is dat als je GEEN integer invoert de programma niet de rest van de code gaat uit voeren, maar zoals je zegt inderdaad een MsgBox met berichtje laat zien dat er iets is fout gegaan en de programma dus STOPT, zodat je als nog een integer waarde kan invoeren.

Wat ie nu doet is: als de MsgBox te voorschijn kwam en je klikte op Ok button dat ie niet terug gaat naar de invoer veld maar de rest van de code ging uitwerken...

Snap ie??

Summary

Dus huidige situatie:
1.Invoer waarde wordt op gevraagt
2.geen integere waarde wordt ingevoerd?
3.MsgBox("Vul een numerieke waarde in, aub")
4.Klik op Ok button MsgBox Verdwijnt (Vanaf hier gaat het fout)
5.Uit voeren rest van de code

Gewenste situatie:
1.Invoer waarde wordt op gevraagt
2.geen integere waarde wordt ingevoerd?
3.MsgBox("Vul een numerieke waarde in, aub")
4.Klik op Ok button MsgBox Verdwijnt
5."Redirect" naar invoer veld


Duidelijker?

  • Crazy D
  • Registratie: Augustus 2000
  • Laatst online: 09-09 16:14

Crazy D

I think we should take a look.

Op maandag 22 april 2002 17:38 schreef D-Original het volgende:
Volgens mij heb ik het niet goed beschreven of je hebt het verkeerd begrepen::

[knip]

Gewenste situatie:
1.Invoer waarde wordt op gevraagt
2.geen integere waarde wordt ingevoerd?
3.MsgBox("Vul een numerieke waarde in, aub")
4.Klik op Ok button MsgBox Verdwijnt
5."Redirect" naar invoer veld

Duidelijker?
Ok da's duidelijker :)
Moeilijk om hier vandaan te zien wat er in je code niet goed gaat hier vandaan, maar uhmm op zich heb je het zelf al neergezet...
code:
1
2
3
4
5
6
7
8
9
10
Private Sub Button1_Click(ByVal sender As System.Object, _
                  ByVal e As System.EventArgs) _
                  Handles Button1.Click
    If Not IsNumeric(TextBox1.Text) Then
      MsgBox("Ingevoerde waarde is niet correct")
      TextBox1.Focus()
    Else
      MsgBox("Doe iets met je getalletje")
    End If
End Sub

En zoals ik al zei, je kan het de gebruiker iets handiger maken door tijdens het intypen al een stukje controle uit te voeren, zodat er alleen getalletjes ingevoerd kunnen worden (en het is uitermate handig een textbox te hebben waarin je dat soort controles (alleen integer, decimale invoer, etc) al hebt geregeld).

Als je er niet uit komt, post dan een je code in je button click event. Bovenstaande werkt prima, zolang je maar zorgt dat er na de End If geen code komt die alleen mag worden uitgevoerd als de invoer numeriek is.

Exact expert nodig?

Pagina: 1