In meinem DataGridView sind momentan zwölf Spalten vorhanden und es ist an ein DataSet/DataTable gebunden. Je nachdem was ich anzeigen lassen möchte, gibt es immer leere Spalten, die doof aussehen und Platz wegnehmen. Die
Mit diesem Code habe ich mein Problem zufriedenstellend gelöst:
Aufruf so:
Wo rufe ich das idealerweise auf? In
System.Windows.Forms.DataGridViewAutoSizeColumnMode
habe ich alle ausprobiert, aber leere Spalten bleiben immer teilweise sichbar.Mit diesem Code habe ich mein Problem zufriedenstellend gelöst:
VB.NET-Quellcode
- Friend Sub DGV_LeereSpaltenAusblendenUndSpaltenBreitenAnpassen(ByRef dgv As DataGridView, ByVal azMode As System.Windows.Forms.DataGridViewAutoSizeColumnMode)
- Dim c, r As Integer
- For c = 0 To dgv.ColumnCount - 1
- For r = 0 To dgv.RowCount - 1
- If dgv.Item(c, r).Value.ToString.Length > 0 Then
- dgv.Columns(c).Visible = True
- dgv.Columns(c).AutoSizeMode = azMode
- dgv.UpdateCellValue(c, r)
- Exit For
- End If
- dgv.Columns(c).Visible = False
- Next
- Next
- End Sub
Aufruf so:
DGV_LeereSpaltenAusblendenUndSpaltenBreitenAnpassen(myDataGridView, DataGridViewAutoSizeColumnMode.AllCells)
Wo rufe ich das idealerweise auf? In
.DataBindingComplete
? --------
Lieber inkompetent als inkontinent
Lieber inkompetent als inkontinent