Sie sind nicht angemeldet.

Paule bei Facebook & Twitter

Google-Anzeigen

Empfehlung

Lieber Besucher, herzlich willkommen bei: Paules-PC-Forum.de. Falls dies Ihr erster Besuch auf dieser Seite ist, lesen Sie sich bitte die Hilfe durch. Dort wird Ihnen die Bedienung dieser Seite näher erläutert. Darüber hinaus sollten Sie sich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutzen Sie das Registrierungsformular, um sich zu registrieren oder informieren Sie sich ausführlich über den Registrierungsvorgang. Falls Sie sich bereits zu einem früheren Zeitpunkt registriert haben, können Sie sich hier anmelden.

Jochen-H

unregistriert

1

Dienstag, 11. April 2006, 16:59

VB.Net Tastatur abfragen

Hallo ,

wie kann man unter VB.Net abfragen, ob eine bestimmte Taste (ESCAPE) in einem Formular gefrückt wurde ?

Quellcode

1
2
3
4
5
6
7
8
9
10
' VB 6
If KeyCode = vbKeyEscape then    ' funktioniert
   Form98.Show
End if

' VB.Net
If KeyCode = System.Windows.Forms.Keys.Escape  then    ' ????
   Dim Form98 as Form98 = New Form98
   Form98.Show
End if


Was ist zu tun, damit die VB-eigene Funktion KeyCode unter VB.Net einsetzbar wird, bzw. welchen Ersatz gibt es unter VB.Net für KeyCode

Gruß
Jochen


TimS.

War schon mal da

Beiträge: 42

Registriert: 19. März 2006

  • Nachricht senden

2

Mittwoch, 12. April 2006, 13:05

Quellcode

1
2
3
4
5
6
Private Sub Form1_KeyPress(ByVal sender As Object, ByVal Press As System.Windows.Forms.KeyPressEventArgs) Handles Me.KeyPress
        Dim P = Press.KeyChar
        If P = ""c Then
            MsgBox("Sie haben Escape gedrückt!") ' Hier den befehl reinschreiben!
        End If
End Sub


Hoffe ich konnt dir weiterhelfen!
Irgendwann raucht der PC immer ab!

Jochen-H

unregistriert

3

Mittwoch, 12. April 2006, 16:01

VB.Net Tastatur abfragen

Hallo ,

im Prinzip funktioniert das, aber dabei habe ich noch 2 Probleme :

1. Wie gebe ich die Zeichenfolge ""c in den VB-Editor (Visual Studio
2003) ein ?
Kopieren + Einfügen kommt falsch an
2. Es funktioniert nur auf einem komplett leeren Form. Sobald weitere
Steuerelemente hinzugefügt sind, wird die Procedur Form1_KeyPress
nicht mehr ausgeführt

Gruß
Jochen

TimS.

War schon mal da

Beiträge: 42

Registriert: 19. März 2006

  • Nachricht senden

4

Mittwoch, 12. April 2006, 16:36

Zum erstem Problem: Was kommt den raus wenn du es kopiers?
Zum zweiten Problem: Wenn er net ausgeführt wird dann müsste er ein fehler haben! aber eigentlich müsst das funktionieren da es bei mir auch klappt!

MFG TImS

P.S.: Hast du ICQ! Wenn ja gib mir mal deine NUmmer! ISt dann einfacher dann fehler zu finden!
Irgendwann raucht der PC immer ab!

Jochen-H

unregistriert

5

Mittwoch, 12. April 2006, 17:35

VB.Net Tastatur abfragen

Hallo TimS ,

zu 1) Wenn ich aus der Zwischenablage einfüge, kommt im Editor nur ein "Qudrat" anstelle von "<-" an.

zu 2) Bei einer Form mit einem oder mehreren Steuerelementen wird die Procedur Form1_KeyPress gar nicht ausgeführt.
(Habe in die Procedur einen Haltepunkt gesetzt)
Es kommt also auch zu keiner Fehlermeldung

ICQ besitze ich leider nicht

Gruß
Jochen

ARCUS_L

Weiß worum´s geht

Beiträge: 104

Registriert: 17. August 2005

  • Nachricht senden

6

Mittwoch, 12. April 2006, 17:43

RE:VB.Net Tastatur abfragen

Hi !!

Ich würde mal sagen das das KeyPress Ereignis des Steuerelements nur ausgeführt wird wenn dieses den Fokus besitzt !!!!

mfg ARCUS_L
Schweigen ist die unerträglichste Erwiderung.

Gilbert K. Chesterton

Jochen-H

unregistriert

7

Mittwoch, 12. April 2006, 19:38

VB.Net Tastatur abfragen

Hallo ARCUS_L ,

da hast Du wohl recht !!!

Hier nochmal mein Problem:

Ich habe eine Form1 (Startformular) mit mehreren Steuerelementen.

Wenn der Anwender die ESCAPE-Taste drückt, soll ein weiteres Formular angezeigt werden. (Form99 Wollen Sie das Programm wirklich verlassen?)

Die Eigenschaft Form1.CancelButton kann ich hier nicht verwenden, da die Anwendung dann direkt geschlossen wird.

Für weitere Tipps bin ich sehr dankbar

Gruß
Jochen

ARCUS_L

Weiß worum´s geht

Beiträge: 104

Registriert: 17. August 2005

  • Nachricht senden

8

Mittwoch, 12. April 2006, 20:37

RE:VB.Net Tastatur abfragen

Hi !

Du könntest ein gemeinsames KeyPress Ereignis schreiben
in der Art:

private Sub Test(ByVal sender As Object, ByVal e As system.windows.forms.KeyPressEventArgs) _
Handles textBox1.KeyPress, textBox2.KeyPress, button1.KeyPress, button2.KeyPress usw.

und beenden warum nicht mit einer Messagebbox
im closing ereignis

If messagebox.Show("Wirklich beenden?", "ACHTUNG!", MessageBoxButtons.YesNo) = Dialogresult.No Then

e.Cancel = True

End If

End Sub

mfg ARCUS_L
Schweigen ist die unerträglichste Erwiderung.

Gilbert K. Chesterton

Jochen-H

unregistriert

9

Donnerstag, 13. April 2006, 09:11

VB.Net Tastatur abfragen

Hallo ARCUS_L ,

Ja es klappt,
wenn mann jedes Steuerelement einzeln als Handles aufführt
z.B. Button.Keypress, ....

Klasse , Danke

Und wie gebe ich nun die Zeichenfolge ""c ein?

 für ESCAPE kriege ich nicht in meinen Editor (Visual Studio 2003)

Gruß
Jochen

ARCUS_L

Weiß worum´s geht

Beiträge: 104

Registriert: 17. August 2005

  • Nachricht senden

10

Donnerstag, 13. April 2006, 17:20

RE:VB.Net Tastatur abfragen

Hi !

Über folgenden Code erhältst du den ASCII Code jeder beliebigen Taste,
wenn du ihn ins Keypress Ereignis einfügst !!

MsgBox(Asc(e.KeyChar))

ansonsten

If e.KeyChar = chr(27) then was auch immer

mfg ARCUS_L
Schweigen ist die unerträglichste Erwiderung.

Gilbert K. Chesterton

Jochen-H

unregistriert

11

Freitag, 14. April 2006, 12:06

VB.Net Tastatur abfragen

Hallo ARCUS_L ,

mit der Abfrage des ASCII-Codes klappt's

:) Super - Vielen Dank !!!

Quellcode

1
2
3
4
5
6
7
8
9
10
11
Private Sub Form1_KeyPress&#40;ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs&#41; _
Handles MyBase.KeyPress, TabControl1.KeyPress, TabPage1.KeyPress, TabPage2.KeyPress, TabPage3.KeyPress, TabPage4.KeyPress

Dim P = e.KeyChar
P = Asc&#40;P&#41;
If P = 27 Then    ' ASCII-Code für ESCAPE-Taste = 27
   Dim Form98 As Form98 = New Form98
   Form98.Show&#40;&#41;
End If

End Sub

Gruß
Jochen

ARCUS_L

Weiß worum´s geht

Beiträge: 104

Registriert: 17. August 2005

  • Nachricht senden

12

Freitag, 14. April 2006, 19:08

RE:VB.Net Tastatur abfragen

Hi !

Du solltes mal "Option Strict On" einschalten um
Datentypkonvertierungen wie :

Quellcode

1
Dim P = e.KeyChar

zu Vermeiden !!!!

Richtig wäre hier

Quellcode

1
Dim P As Char = e.KeyChar


mfg ARCUS_L
Schweigen ist die unerträglichste Erwiderung.

Gilbert K. Chesterton

13

Mittwoch, 7. Juni 2006, 21:23

form eigenschaft keypreview auf true gesetzt und dieser code, dan gings:

Private Sub MainForm_KeyDown(ByVal sender As Object, _
ByVal e As System.Windows.Forms.KeyEventArgs) _
Handles MyBase.KeyDown
Select Case e.KeyCode
Case 109,189 '+
zoomOut()
Case 107,187 '-
zoomIn()
End Select
End Sub

Tomsky

Thema bewerten