DataGridView:最終列の幅をDGVの全体幅に合わせる
■以下の処理を読み出し時やColumnWidthChangedイベントにセット
(*)最終列の幅を、DGV全体幅-(全列幅-最終列幅+スクロールバー幅+RowHeader幅)
にすればよい。
Public Sub DataGridViewLastColumnWidthSetting(ByVal ctrl As DataGridView)
Dim allWidth As Integer =
ctrl.Columns.GetColumnsWidth(DataGridViewElementStates.Visible)
Dim vScrollWidth As Integer = If(ctrl.Controls.OfType(Of VScrollBar)().First().Visible,
SystemInformation.VerticalScrollBarWidth, 0)
Dim lastColmWidth As Integer =
ctrl.Columns.GetLastColumn(DataGridViewElementStates.Visible, Nothing).Width
Dim rowSelectWidth As Integer = If(ctrl.RowHeadersVisible, ctrl.RowHeadersWidth, 0)
If allWidth <= ctrl.Width - SystemInformation.VerticalScrollBarWidth Then
ctrl.Columns.GetLastColumn(DataGridViewElementStates.Visible, Nothing).Width =
ctrl.Width - (allWidth - lastColmWidth + vScrollWidth + rowSelectWidth)
End If
End Sub