Rubrik: Controls · DataGrid & DataGridView | VB-Versionen: VB2005, VB2008 | 08.09.09 |
Löschen des Wertes von ComboBoxColumns oder CalenderColumns im Datagridview Dieser Tipp zeigt eine Methode zum Löschen der Zellwerte von ComboBoxColumns oder CalenderColumns im Datagridview mit Hilfe der rechten Maustaste. | ||
Autor: Dietrich Herrmann | Bewertung: | Views: 9.021 |
ohne Homepage | System: Win2k, WinXP, Win7, Win8, Win10, Win11 | kein Beispielprojekt |
Ich hatte in meiner Datenabnkanwendung das Problem, die Zellwerte eines Datagridviews von ComboBoxColumns oder CalenderColumns nicht so einfach löschen zu können. Denn diese Spalten sind quasi datengebunden und wenn die Daten keinen NULL-Wert enthalten...
Mir ist dazu dann die folgende Lösung mit der rechten Maustaste eingefallen. Der Code zeigt beispielhaft, wie man es im CellMouseClick-Ereignis des DGV machen kann:
Private Sub Datagridview1_CellMouseClick(ByVal sender As Object, _ ByVal e As DataGridViewCellMouseEventArgs) Handles Datagridview1.CellMouseClick If e.ColumnIndex < 0 Then Exit Sub Dim dgv As DataGridView = CType(sender, DataGridView) Dim c As DataGridViewCell = dgv.CurrentCell Dim n As String = dgv.Columns(e.ColumnIndex).Name ' rechte Maustaste zum Löschen von Spaltenwerten in Combobox- oder Datum-Spalten If e.Button = MouseButtons.Right Then With c.OwningRow If Not .IsNewRow Then With c.OwningColumn ' hier kann man die DGV-Spalten abfragen, für die die Aktion gelten soll: If n = "EineDatumSpalte" OrElse n = "EineComboboxSpalte" Then dgv.Rows(e.RowIndex).Cells(n).Value = DBNull.Value End If End With End If End With End If End Sub
Vielleicht gibt es noch andere Möglichkeiten, aber so ist es recht praktikabel.