![]() |
Anzeige:
|
|
|||||||
| Visual Basic, Visual Basic.NET Alles zum Thema - Visual Basic und Visual Basic.NET
Fragen zu VBA bitte in das Forum Office-Anwendungen posten! |
|
![]() |
|
|
LinkBack | Themen-Optionen | Ansicht |
|
|
#1 (Direktlink) |
|
Gast
Beiträge: n/a
|
Hallo ,
wie kann man unter VB.Net abfragen, ob eine bestimmte Taste (ESCAPE) in einem Formular gefrückt wurde ? Code:
' 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 Gruß Jochen |
|
|
|
|
#2 (Direktlink) |
|
War schon mal da
![]() Registriert seit: 19.03.2006
Beiträge: 42
|
Code:
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
__________________
Irgendwann raucht der PC immer ab! |
|
|
|
|
|
#3 (Direktlink) |
|
Gast
Beiträge: n/a
|
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 |
|
|
|
#4 (Direktlink) |
|
War schon mal da
![]() Registriert seit: 19.03.2006
Beiträge: 42
|
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! |
|
|
|
|
|
#5 (Direktlink) |
|
Gast
Beiträge: n/a
|
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 |
|
|
|
|
#6 (Direktlink) |
|
Weiß worum´s geht
![]() Registriert seit: 17.08.2005
Beiträge: 104
|
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 |
|
|
|
|
|
#7 (Direktlink) |
|
Gast
Beiträge: n/a
|
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 |
|
|
|
#8 (Direktlink) |
|
Weiß worum´s geht
![]() Registriert seit: 17.08.2005
Beiträge: 104
|
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 |
|
|
|
|
|
#9 (Direktlink) |
|
Gast
Beiträge: n/a
|
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 |
|
|
|
#10 (Direktlink) |
|
Weiß worum´s geht
![]() Registriert seit: 17.08.2005
Beiträge: 104
|
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 |
|
|
|
|
|
|
#11 (Direktlink) |
|
Gast
Beiträge: n/a
|
Hallo ARCUS_L ,
mit der Abfrage des ASCII-Codes klappt's Code:
Private Sub Form1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) _ Handles MyBase.KeyPress, TabControl1.KeyPress, TabPage1.KeyPress, TabPage2.KeyPress, TabPage3.KeyPress, TabPage4.KeyPress Dim P = e.KeyChar P = Asc(P) If P = 27 Then ' ASCII-Code für ESCAPE-Taste = 27 Dim Form98 As Form98 = New Form98 Form98.Show() End If End Sub Jochen |
|
|
|
#12 (Direktlink) |
|
Weiß worum´s geht
![]() Registriert seit: 17.08.2005
Beiträge: 104
|
Hi !
Du solltes mal "Option Strict On" einschalten um Datentypkonvertierungen wie : Code:
Dim P = e.KeyChar Richtig wäre hier Code:
Dim P As Char = e.KeyChar
__________________
Schweigen ist die unerträglichste Erwiderung. Gilbert K. Chesterton |
|
|
|
|
|
#13 (Direktlink) |
|
Gast
Beiträge: n/a
|
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 |
|
![]() |
|
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
|
|