Hallo Linden,
das hier ist ein Forum für VB, bis einschliesslich der Version 6!
.Net hat hier eigentlich nichts zu suchen. Dafür gibt es ein anderes Brett.
Aber sei es drum, schauen wir mal woran es liegt
Ich hab das Problem das wenn ich den fokus mit enter
weiterschalte immer ein ton kommt.
Das weisst darauf hin das du das Ereignis nicht selbst verarbeitet hast!
Gibt es einen Befehl zum Töne ausschalten??
Hmm, da muesste ich mal schauen. Aber für Dein Vorhaben ist das nicht von nöten!
nach diesem Prinzipn habe ich das weiterschalten eingestellt
(falsche Eingabebehandlung):
Private Sub txtOBJEKT_KeyPress(ByVal sender As Object, ByVal e
As System.Windows.Forms.KeyPressEventArgs) Handles
txtOBJEKT.KeyPress
Select Case e.KeyChar
Case „0“ To „9“, ChrW(Keys.Back)
Case ChrW(Keys.Return)
cmdber.Focus()
Case Else
e.Handled = True
Beep()
End Select
End Sub
Owei
Sehe ich das Richtig das bei Enter / return der Focus auf den Button gelegt werden soll? Das wenn eine Zahl eingegeben wird, diese gleich gelöscht wird?
Das alle andere Zeichen erlaubt sind? Auch das die Routine nur auf ein Object angewendet werden soll ? Wenn nicht, weisst du was die Handles klausel macht?
Aber nun gut, überlegen wir einmal.
1: Es wird ein Zeichen Gedrueckt, das heisst, wir lassen die textbox die Arbeit machen und akzeptieren das zeichen
2: Es wird eine Zahl eingegeben! Das heisst, wir klinken uns ein und übernehmen die Arbeit. Sprich wir stellen das zeichen nicht dar!
3: Es wird Enter gedrueckt. Wir machen das selbe wie bei 2, nur das wir kein Zeichen anzeigen sondern den Focus weiterschalten.
Klingt vlt. ein wenig problematisch. Ist es aber nicht
Private Sub DeinObject(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles DeinObject.KeyPress
Select Case e.KeyChar 'Wir fragen das Zeichen ab
Case ChrW(13) 'Ist es Enter
Button1.Focus() 'wir setzen den Focus auf Button1
e.Handled = True 'Wir sagen dem Object das wir alles gemacht haben
' Das Object macht nun nichts weiter. Also auch kein Beep
Case "0" To "9" 'Ist es eine Zahl
e.Handled = True 'Wir sagen dem Object das wir alles gemacht haben
'Wir stellen aber das Zeichen nicht dar!
Case Else 'Ein zulaessiges Zeichen wird eingegeben
e.Handled = False 'Wir sagen dem Object. Mach du mal.
'Es stellt automatisch das Zeichen dar
End Select
End Sub
Soweit alles klar? Wenn nicht dann befrage mal die Hilfe, über die Handled Eigenschaft eines Eventargs
MfG Alex, der bis zum WE nicht erreichbar ist.