Datagridview Keypress Event
- VB.NET
Sie verwenden einen veralteten Browser (%browser%) mit Sicherheitsschwachstellen und können nicht alle Funktionen dieser Webseite nutzen.
Hier erfahren Sie, wie einfach Sie Ihren Browser aktualisieren können.
Hier erfahren Sie, wie einfach Sie Ihren Browser aktualisieren können.
Es gibt 14 Antworten in diesem Thema. Der letzte Beitrag () ist von Zim.
-
-
-
-
-
-
-
-
Ist Me.KeyPreview etwa auf True?Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch
Ein guter .NET-Snippetkonverter (der ist verfügbar).
Programmierfragen über PN / Konversation werden ignoriert! -
-
Offensichtlich wirft nur Enter solch ein Event.Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch
Ein guter .NET-Snippetkonverter (der ist verfügbar).
Programmierfragen über PN / Konversation werden ignoriert! -
-
Kannst mit Tastatur Hooks versuchen...vbarchiv.net/tipps/tipp_1991.html
-
-
Sooo ich hab mal ein wenig mit Tastatur Hooks experementiert. Geht soweit auch ganz gut.
Aber ich kann nicht abfragen ob ich bereits ein Komma oder Punkt geschrieben hab da kommt dann immer "NullReferenceExeption..."
Wie kann ich des denn am besten testen ohne mir merken zu müssen ob ich die Tasten schon gedrückt habe.
Spoiler anzeigen VB.NET-Quellcode
- Private Function KeyboardHookProc(ByVal nCode As Integer, _
- ByVal wParam As IntPtr, _
- ByRef lParam As KBDLLHOOKSTRUCT) As IntPtr
- Dim fEatKeyStroke As Boolean
- If nCode = HC_ACTION Then
- Select Case lParam.vkCode
- ' Hier z.B. die Zeichen a und b nicht zulassen
- '(fEatKeyStroke = True)
- Case Keys.D0
- fEatKeyStroke = False
- Case Keys.D1
- fEatKeyStroke = False
- Case Keys.D2
- fEatKeyStroke = False
- Case Keys.D3
- fEatKeyStroke = False
- Case Keys.D4
- fEatKeyStroke = False
- Case Keys.D5
- fEatKeyStroke = False
- Case Keys.D6
- fEatKeyStroke = False
- Case Keys.D7
- fEatKeyStroke = False
- Case Keys.D8
- fEatKeyStroke = False
- Case Keys.D9
- fEatKeyStroke = False
- Case Keys.NumPad0
- fEatKeyStroke = False
- Case Keys.NumPad1
- fEatKeyStroke = False
- Case Keys.NumPad2
- fEatKeyStroke = False
- Case Keys.NumPad3
- fEatKeyStroke = False
- Case Keys.NumPad4
- fEatKeyStroke = False
- Case Keys.NumPad5
- fEatKeyStroke = False
- Case Keys.NumPad6
- fEatKeyStroke = False
- Case Keys.NumPad7
- fEatKeyStroke = False
- Case Keys.NumPad8
- fEatKeyStroke = False
- Case Keys.NumPad9
- fEatKeyStroke = False
- Case Keys.OemPeriod
- IfDGV_Kali.CurrentCell.Value.ToString.IndexOf(".") = -1 Then
- fEatKeyStroke = False
- Else
- fEatKeyStroke = True
- End If
- Case Keys.Oemcomma
- If DGV_Kali.CurrentCell.Value.ToString.IndexOf(",") = -1 Then
- fEatKeyStroke = False
- Else
- fEatKeyStroke = True
- End If
- Case Keys.Back
- fEatKeyStroke = False
- Case Keys.Delete
- fEatKeyStroke = False
- Case Else
- fEatKeyStroke = True
- End Select
- If fEatKeyStroke Then
- Return New IntPtr(1)
- Exit Function
- End If
- Return CallNextHookEx(mHandle, nCode, wParam, lParam)
- End If
- End Function
-
Habs gelöst
Spoiler anzeigen VB.NET-Quellcode
- Private Function KeyboardHookProc(ByVal nCode As Integer, _
- ByVal wParam As IntPtr, _
- ByRef lParam As KBDLLHOOKSTRUCT) As IntPtr
- Dim fEatKeyStroke As Boolean
- If nCode = HC_ACTION Then
- Select Case lParam.vkCode
- ' Hier z.B. die Zeichen a und b nicht zulassen
- '(fEatKeyStroke = True)
- Case Keys.D0
- fEatKeyStroke = False
- Case Keys.D1
- fEatKeyStroke = False
- Case Keys.D2
- fEatKeyStroke = False
- Case Keys.D3
- fEatKeyStroke = False
- Case Keys.D4
- fEatKeyStroke = False
- Case Keys.D5
- fEatKeyStroke = False
- Case Keys.D6
- fEatKeyStroke = False
- Case Keys.D7
- fEatKeyStroke = False
- Case Keys.D8
- fEatKeyStroke = False
- Case Keys.D9
- fEatKeyStroke = False
- Case Keys.NumPad0
- fEatKeyStroke = False
- Case Keys.NumPad1
- fEatKeyStroke = False
- Case Keys.NumPad2
- fEatKeyStroke = False
- Case Keys.NumPad3
- fEatKeyStroke = False
- Case Keys.NumPad4
- fEatKeyStroke = False
- Case Keys.NumPad5
- fEatKeyStroke = False
- Case Keys.NumPad6
- fEatKeyStroke = False
- Case Keys.NumPad7
- fEatKeyStroke = False
- Case Keys.NumPad8
- fEatKeyStroke = False
- Case Keys.NumPad9
- fEatKeyStroke = False
- Case Keys.OemPeriod
- If MainForm.DGV_Kali.CurrentCell.GetEditedFormattedValue(0, DataGridViewDataErrorContexts.ClipboardContent).ToString.IndexOf(",") = -1 And MainForm.DGV_Kali.CurrentCell.GetEditedFormattedValue(0, DataGridViewDataErrorContexts.ClipboardContent).ToString.IndexOf(".") = -1 Then
- fEatKeyStroke = False
- Else
- fEatKeyStroke = True
- End If
- Case Keys.Oemcomma
- If MainForm.DGV_Kali.CurrentCell.GetEditedFormattedValue(0, DataGridViewDataErrorContexts.ClipboardContent).ToString.IndexOf(",") = -1 And MainForm.DGV_Kali.CurrentCell.GetEditedFormattedValue(0, DataGridViewDataErrorContexts.ClipboardContent).ToString.IndexOf(".") = -1 Then
- fEatKeyStroke = False
- Else
- fEatKeyStroke = True
- End If
- Case Keys.Back
- fEatKeyStroke = False
- Case Keys.Delete
- fEatKeyStroke = False
- Case Keys.OemMinus
- If vb.left(MainForm.DGV_Kali.CurrentCell.GetEditedFormattedValue(0, DataGridViewDataErrorContexts.ClipboardContent).ToString, 1).IndexOf(",") = -1 Then
- fEatKeyStroke = False
- Else
- fEatKeyStroke = True
- End If
- Case Else
- fEatKeyStroke = True
- End Select
- If fEatKeyStroke Then
- Return New IntPtr(1)
- Exit Function
- End If
- Return CallNextHookEx(mHandle, nCode, wParam, lParam)
- End If
- End Function
-
Tags
-
Ähnliche Themen
-
lris08 - - Sonstige Problemstellungen
-
Tastendruck im NUM Block abfangen
hotknight - - Sonstige Problemstellungen
-
2 Benutzer haben hier geschrieben
- Gast (13)
- RodFromGermany (2)