TIL

Today I Learned. 知ったこと、学んだことを書いていく

DataGridViewの全ての列幅が表示領域よりも小さかったら最後の列幅を最大まで広げる - VB.NET

頑張って書いたやつのメモ

''' <summary>
''' 全ての列幅が表示領域よりも小さかったら最後の列幅を最大まで広げる
''' </summary>
Public Sub AutoFillLastColumn()
    ' カラムの横幅の合計値
    Dim colWidthSum As Integer = 0

    For Each col As DataGridViewColumn In Me._dgv.Columns
        colWidthSum += col.Width
    Next

    ' 行ヘッダーの横幅も加算する
    colWidthSum += Me._dgv.RowHeadersWidth

    ' 表示領域よりも小さいとき、最後の列を横いっぱいに広げる
    If colWidthSum < Me._dgv.ClientSize.Width Then
        ' 最後の列
        Dim lastCol As DataGridViewColumn = Me._dgv.Columns(Me._dgv.Columns.Count - 1)
        lastCol.AutoSizeMode = DataGridViewAutoSizeColumnsMode.Fill
    End If
End Sub

これ作るのに結構時間かかった。

参考文献

メモし忘れた