Tasten abfragen klappt nicht

Hallo wer-weiss-was Experten,
ich habe beim Tastenabfragen ein Problem.
Wenn ich folgende Code benutze

Private Sub Form_KeyPress(ByVal KeyAscii As Integer)
If KeyAscii = 13 Then
MsgBox(„Enter!“)
End If
End Sub

passiert nichts. Hat das etwas mit dem Focus zu tun?

Hallo,

ich habe beim Tastenabfragen ein Problem.
Wenn ich folgende Code benutze

Private Sub Form_KeyPress(ByVal KeyAscii As Integer)
If KeyAscii = 13 Then
MsgBox(„Enter!“)
End If
End Sub

passiert nichts. Hat das etwas mit dem Focus zu tun?

Ja, hat es.
Die Form muss auf jeden Fall aktiv sein.

Wenn auf der Form Steuerelemente liegen, die den Focus haben, musst Du die Eigenschaft ‚KeyPreview‘ der Form auf ‚True‘ stellen, damit das Ereignis ‚Key_Press‘ der Form ausgelöst wird.

Gruß Rainer

danke.

ich glaub ich bin zu dumm. Immer noch nicht!
Muss ich vielleicht irgendein Import machen oder so?

Hallo,

Muss ich vielleicht irgendein Import machen oder so?

nein.

versuchst Du das eventuell mit dem ergebnis der anderen Frage zu kombinieren und machst die Form unsichtbar? Dann geht das so nicht, die Form muss sichtbar, aktiv und das Fenster im Vodergrund sein.

Etwas mehr musst Du schon erzählen. ‚geht nicht‘ ist die schlechteste Fehlerbeschreibung, die ich kenne.

Gruß Rainer

ok dann drück ich mich mal genauer aus.
ich nutze die Microsoft Visual Basic Express Edition.
Ich stelle in den Form1 Eigenschaften KeyPreview auf true.
Ich doppelklicke bei Ereignisse auf KeyDown.
Ich eretze diesen komischen Parameter mit „KeyAscii as Integer“.
Jetzt schreibe ich:

if KeyAscii = 13 then
MsgBox(„Enter“)
End If

Verschoben nach .NET
Hallo,

ich nutze die Microsoft Visual Basic Express Edition.

*grummel* vergiss alles was ich geschrieben habe.
Du redest von .NET, damit kenne ich mich nicht aus.
Ich verschiebe den Strang ins richtige Brett.

Gruß Rainer

ok dann drück ich mich mal genauer aus.
ich nutze die Microsoft Visual Basic Express Edition.
Ich stelle in den Form1 Eigenschaften KeyPreview auf true.
Ich doppelklicke bei Ereignisse auf KeyDown.
Ich eretze diesen komischen Parameter mit „KeyAscii as
Integer“.

Wieso das denn?
Wenn Du nicht weisst, warum Du etwas machst, dann lass’ es lieber bleiben, sonst kommt nur Murks raus.
Es hat seinen Grund, dass die automatisch generierten Eventhandler-Rümpfe genau diese „komischen“ Parameter haben, die sie bekommen und bei KeyDown ist das nicht „Integer“!
Gerade am Anfang würde ich eher davon ausgehen, dass der Fehler nicht in der Entwicklungsumgebung liegt, sondern vor dem Rechner sitzt… :wink:

Also das Ganze nochmal.

Erzeuge den Eventhandler nochmal und lass’ die Finger von den Parametern.
Im Methodenrumpf schreibst Du dann:

if (e.KeyCode = Keys.Return) then
 MessageBox.Show("Return")
end if

Zusammen mit dem bereits genannten KeyPreview sollte es dann klappen.

Gruß,
Martin