[DGV] NoNullAllowedException abfangen und bearbeiten

  • VB.NET

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von ruediger_006.

    [DGV] NoNullAllowedException abfangen und bearbeiten

    Hi!

    Ich habe ein DGV in dem User etwas eintragen können (sagen wir: VName, NName, Geburtstag), alles Pflichtfelder. Wenn jetzt ein User keinen Vornamen einträgt, aber einen NNamen und Geburtstag und sich dann aus der Zeile bewegt kommt eine Fehlermeldung und die Zeile wird gelöscht.

    die Fehlermeldung fange ich mit :

    VB.NET-Quellcode

    1. Private Sub DataGridView_DataError(sender As Object, e As DataGridViewDataErrorEventArgs) Handles DataGridView.DataError
    2. If Not e.Exception Is Nothing AndAlso _
    3. e.Context = DataGridViewDataErrorContexts.Commit Then
    4. MessageBox.Show("In Zeile" & " " & e.RowIndex & " " & "wurde ein Pflichtfeld nicht ausgefüllt.")
    5. End If
    6. End Sub

    Jetzt habe ich hierzu zwei Fragen:

    1. Ich möchte den Fehler abfangen bevor die Zeile gelöscht wird, so dass der User nicht wieder alles eintragen muss. Wo setze ich da an?
    2. Am besten wäre es natürlich, wenn dem User dann gesagt wird "Feld VName wurde nicht ausgefüllt. Hierbei handelt es sich um ein Pflichtfeld". Als das Feld in dem der Fehler passiert ist abgefangen wird.

    Das habe ich schon mit:

    VB.NET-Quellcode

    1. MessageBox.Show("Die Spalte " & DataGridView.Columns(e.ColumnIndex).HeaderText & _
    2. " ist ein Pflichtfeld und muss ausgefüllt werden!")


    versucht, hier ist aber das Problem, dass wenn ich in VName nichts eintrage und dann in NName etwas eintrage und in Geburtstag und dann die Zeile verlasse, dass dann da steht "Die Spalte Geburtstag ist ein Pflichtfeld und muss ausgefüllt werden!". Die exception fängt also anscheinend nicht das Feld ab in dem der Fehler auftritt, sondern das was beim auftreten des Fehlers angewählt ist.

    Hat jemand vielleicht eine Idee wie ich die beiden Probleme (oder eins davon) lösen kann.

    VG
    Rüdiger