Nabend.
Ich nutze auf jeder Form mit DataGridView eigentlich den gleichen Keyhandler, deshalb kommt
jetzt die Überlegung diesen an eine zentrale Stelle zu packen. Allerdings müsste ich Subs mit übergeben: (
Spoiler anzeigen
Also sowas wie:
Gibt es eine Möglichkeit, Subs zu übergeben?
Ich nutze auf jeder Form mit DataGridView eigentlich den gleichen Keyhandler, deshalb kommt
jetzt die Überlegung diesen an eine zentrale Stelle zu packen. Allerdings müsste ich Subs mit übergeben: (
Edit
und CreateNew
sind die Subs, die auf der jeweiligen Form des DGV liegen)VB.NET-Quellcode
- Private Sub dgv_KeyDown(sender As Object, e As KeyEventArgs) Handles dgvMitarbeiterAbteilung.KeyDown,
- dgvAbteilung.KeyDown
- Dim dgv = DirectCast(sender, DataGridView)
- If e.KeyCode = Keys.P AndAlso e.Modifiers = Keys.Control Then
- ElseIf e.KeyCode = Keys.C AndAlso e.Modifiers = Keys.Control Then
- dgv.copyExportSelection(False)
- ElseIf e.KeyCode = Keys.A AndAlso e.Modifiers = Keys.Control Then
- dgv.SelectAll()
- ElseIf e.KeyCode = Keys.I AndAlso e.Modifiers = Keys.Control Then
- dgv.infoDGV
- End If
- Select Case e.KeyCode
- Case Keys.Enter : If dgvMitarbeiterAbteilung.ReadOnly Then Edit(dgv)
- Case Keys.Insert : CreateNew(dgv)
- Case Keys.Delete
- If User.MayDelete(_appMod) Then
- Dts.SaveDts()
- dgv.AllowUserToDeleteRows = True
- e.Handled = msgQuestionWarning("Die markierten Zeilen werden endgültig gelöscht, fortfahren?") = DialogResult.No
- Dts.SaveDts()
- Else
- msgDeleteDenied()
- e.Handled = True
- End If
- End Select
- End Sub
Also sowas wie:
Quellcode
- Public Sub RegisterDgvHandling(dgv As DataGridView, CreateNew As Sub, Edit As Sub)
- Addhandler dgv.KeyDown, AddressOf dgv_KeyDown
- End Sub
- Private Sub dgv_KeyDown(sender as Object, e as KeyEventArgs)
- Dim dgv = DirectCast(sender, DataGridView)
- If e.KeyCode = Keys.P AndAlso e.Modifiers = Keys.Control Then
- ElseIf e.KeyCode = Keys.C AndAlso e.Modifiers = Keys.Control Then
- dgv.copyExportSelection(False)
- ElseIf e.KeyCode = Keys.A AndAlso e.Modifiers = Keys.Control Then
- dgv.SelectAll()
- ElseIf e.KeyCode = Keys.I AndAlso e.Modifiers = Keys.Control Then
- dgv.infoDGV
- End If
- Select Case e.KeyCode
- Case Keys.Enter : If dgvMitarbeiterAbteilung.ReadOnly Then Edit(dgv)
- Case Keys.Insert : CreateNew(dgv)
- Case Keys.Delete
- If User.MayDelete(_appMod) Then
- Dts.SaveDts()
- dgv.AllowUserToDeleteRows = True
- e.Handled = msgQuestionWarning("Die markierten
- Zeilen werden endgültig gelöscht, fortfahren?") = DialogResult.No
- Dts.SaveDts()
- Else
- msgDeleteDenied()
- e.Handled = True
- End If
- End Select
- End Sub
Gibt es eine Möglichkeit, Subs zu übergeben?
"Na, wie ist das Wetter bei dir?"
"Caps Lock."
"Hä?"
"Shift ohne Ende!"
"Caps Lock."
"Hä?"
"Shift ohne Ende!"