Hallo zusammen, hier mal eine ggf. ungewöhnliche Anfrage.
Ich "importiere" aus dem Clipboard Daten in ein DataGridView. Der User hat zudem noch die Möglichkeit, selbst Zeilen hinzuzufügen oder die vorhandenen im Nachgang zu bearbeiten.
Nu möchte ich gerne, dass wenn eine Convertierung fehlschlägt, der User solange an die Cell gefesselt wird, bis es passt. Bisher habe ich es nur hinbekommen, dass der User informiert wird
und die Zelle rot eingefärbt wird. Ich gehe aber davon aus, dass es User gibt die das nicht interessiert und dann "knallt's".
Beim Schließen des Dialogs mit dem DGV werden die untypisierten Rows des DataGridView in eine Typisierte Tabelle geschrieben, deshalb muss das passen...
Ich hoffe ihr wisst, was ich meine. Ich komme leider grad nicht dahinter, wie ich bei einem "Fehler" das BeginEdit einer Zelle wieder erzwingen kann. Im
ObjectBrowser hab ich dazu nix gefunden..
Ich "importiere" aus dem Clipboard Daten in ein DataGridView. Der User hat zudem noch die Möglichkeit, selbst Zeilen hinzuzufügen oder die vorhandenen im Nachgang zu bearbeiten.
Nu möchte ich gerne, dass wenn eine Convertierung fehlschlägt, der User solange an die Cell gefesselt wird, bis es passt. Bisher habe ich es nur hinbekommen, dass der User informiert wird
und die Zelle rot eingefärbt wird. Ich gehe aber davon aus, dass es User gibt die das nicht interessiert und dann "knallt's".
Beim Schließen des Dialogs mit dem DGV werden die untypisierten Rows des DataGridView in eine Typisierte Tabelle geschrieben, deshalb muss das passen...
Ich hoffe ihr wisst, was ich meine. Ich komme leider grad nicht dahinter, wie ich bei einem "Fehler" das BeginEdit einer Zelle wieder erzwingen kann. Im
ObjectBrowser hab ich dazu nix gefunden..
VB.NET-Quellcode
- Private Sub dgv_CellEndEdit(sender As Object, e As DataGridViewCellEventArgs) Handles dgv.CellEndEdit
- Dim cl = dgv.Item(e.ColumnIndex, e.RowIndex)
- If e.ColumnIndex = 0 Then
- Dim d As Date
- If Not Date.TryParse(cl.Value.ToString, d) Then
- msgExclamation($"{cl.Value} ist kein gültiges Datum!")
- cl.Style.BackColor = Color.Red
- 'TODO: hier Zelle wieder in den Edit-Modus versetzen
- Else
- cl.Style.BackColor = SystemColors.Window
- End If
- End If
- If e.ColumnIndex = 1 Then
- Dim i As Integer
- If Not Integer.TryParse(cl.Value.ToString, i) Then
- msgExclamation($"{cl.Value} ist keine gültige Zahl!")
- cl.Style.BackColor = Color.Red
- 'TODO: hier Zelle wieder in den Edit-Modus versetzen
- Else
- cl.Style.BackColor = SystemColors.Window
- End If
- End If
- End Sub
"Na, wie ist das Wetter bei dir?"
"Caps Lock."
"Hä?"
"Shift ohne Ende!"
"Caps Lock."
"Hä?"
"Shift ohne Ende!"