vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Zippen wie die Profis!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Fortgeschrittene
Re: Datagridview nur Zahlen in Bestimmten Spalten zulassen 
Autor: Winnie Puuh
Datum: 09.05.14 08:05

zurück zum Thema:

die von fin dargestellte Lösung prüft erst, wenn die Eingabe schon beendet ist. Mein Ansatz ist, erst gar keine unerlaubten Zeichen zuzulassen:

Ich verwende daher die Behandlung des Ereignisses EditingControlShowing des DGV. Dies tritt ein, wenn ein Steuerelement zur Bearbeitung einer Zelle angezeigt wird.

Zunächst prüfe ich, ob es sich um eine DataGridViewTextBox handelt, und ob die aktive Spalte die ist, in der nur Zahlen erlaubt sind. Dann wird der KeyPress-Ereignis-Handler zunächst entfernt und wieder hinzugefügt, um bei Wiederholungen sicherzugehen:
''' <summary>
''' die aktive Zelle
''' </summary>
''' <param name="sender"></param>
''' <param name="e"></param>
''' <remarks></remarks>
Private Sub dgvVorgang_EditingControlShowing(ByVal sender As Object, _
                                                 ByVal e As _
                                                 System.Windows.Forms.DataGridV_
                                                 iewEditingControlShowingEventA_
                                                 rgs) _
                                                 Handles _
                                                 dgvVorgang.EditingControlShowi_
                                                 ng
 
    If TypeOf (e.Control) Is DataGridViewTextBoxEditingControl Then
        Dim locTB As DataGridViewTextBoxEditingControl = _
                            CType(e.Control, DataGridViewTextBoxEditingControl)
        RemoveHandler locTB.KeyPress, AddressOf TextBox_KeyPress
 
        If dgvVorgang.CurrentCell.ColumnIndex = 4 Then
            AddHandler locTB.KeyPress, AddressOf TextBox_KeyPress
        End If
 
    End If
 
End Sub
Dann gibt es die Behandlung des KeyPress-Ereignisses der TextBox, die die numerische Eingabe prüft:
''' <summary>
''' in einer Textbox des DataGridViews wurde ein Zeichen eingegeben
''' </summary>
''' <param name="sender"></param>
''' <param name="e"></param>
''' <remarks>
''' nur numerische Eingabe zulassen
''' </remarks>
Private Sub TextBox_KeyPress(ByVal sender As Object, ByVal e As _
  KeyPressEventArgs)
 
    If Not IstNumerischeEingabe(e.KeyChar) Then
        e.Handled = True
    End If
 
End Sub
...man könnte natürlich auch schreiben "e.Handled = not IstNumerischeEingabe(e.KeyChar)"

Die Funktion IstNumerischeEingabe ...
''' <summary>
''' prüft, ob das Zeichen in einem rein numerischen Eingabefeld erlaubt ist
''' </summary>
''' <param name="Zeichen"></param>
''' <returns></returns>
''' <remarks></remarks>
Public Function IstNumerischeEingabe(ByVal Zeichen As Char) As Boolean
 
    Return (",1234567890" & Keys.Back & Keys.Delete).Contains(Zeichen)
 
End Function

Denk' Denk' Denk'

Beitrag wurde zuletzt am 09.05.14 um 08:08:09 editiert.

alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Datagridview nur Zahlen in Bestimmten Spalten zulassen6.006Sisco8625.03.14 14:58
Re: Datagridview nur Zahlen in Bestimmten Spalten zulassen4.549fin25.03.14 16:08
Re: Datagridview nur Zahlen in Bestimmten Spalten zulassen4.231Manfred X25.03.14 16:46
Re: Datagridview nur Zahlen in Bestimmten Spalten zulassen3.851ErfinderDesRades27.03.14 11:10
Re: Datagridview nur Zahlen in Bestimmten Spalten zulassen3.797Manfred X27.03.14 18:20
Re: Datagridview nur Zahlen in Bestimmten Spalten zulassen3.770ErfinderDesRades27.03.14 18:51
Re: Datagridview nur Zahlen in Bestimmten Spalten zulassen3.695Manfred X27.03.14 19:30
Re: Datagridview nur Zahlen in Bestimmten Spalten zulassen3.730ErfinderDesRades27.03.14 19:41
Re: Datagridview nur Zahlen in Bestimmten Spalten zulassen3.781Manfred X27.03.14 20:31
Re: Datagridview nur Zahlen in Bestimmten Spalten zulassen3.775Manfred X27.03.14 21:49
Re: Datagridview nur Zahlen in Bestimmten Spalten zulassen3.651ErfinderDesRades27.03.14 22:26
Re: Datagridview nur Zahlen in Bestimmten Spalten zulassen3.794Manfred X27.03.14 23:27
Re: Datagridview nur Zahlen in Bestimmten Spalten zulassen3.670ErfinderDesRades27.03.14 23:48
Re: Datagridview nur Zahlen in Bestimmten Spalten zulassen3.645Manfred X27.03.14 23:55
Re: Datagridview nur Zahlen in Bestimmten Spalten zulassen3.722ErfinderDesRades28.03.14 00:51
Re: Datagridview nur Zahlen in Bestimmten Spalten zulassen3.695Manfred X28.03.14 06:33
Re: Datagridview nur Zahlen in Bestimmten Spalten zulassen4.343Winnie Puuh09.05.14 08:05
Re: Datagridview nur Zahlen in Bestimmten Spalten zulassen3.790us471113.05.14 10:46
Re: Datagridview nur Zahlen in Bestimmten Spalten zulassen3.659ModeratorDaveS13.05.14 12:49
Re: Datagridview nur Zahlen in Bestimmten Spalten zulassen3.659ErfinderDesRades13.05.14 12:53
Re: Datagridview nur Zahlen in Bestimmten Spalten zulassen3.961Manfred X13.05.14 13:21
Re: Datagridview nur Zahlen in Bestimmten Spalten zulassen3.823Sisco8613.05.14 18:42

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel