I have a DataGridView with 5 columns, with dock = filled.

I want the last (rightmost) column's width to fill the remaining right side of the form, when the form is maximized.

How can I do that?

For anyone who is AutoGenerating their columns (or even if you're not), you can call this extension method on your DataGridView to resize the last column to Fill

C-Sharp:

<!-- language: lang-cs -->
public static class Utilities
{
    public static void StretchLastColumn(this DataGridView dataGridView)
    {
        var lastColIndex = dataGridView.Columns.Count - 1;
        var lastCol = dataGridView.Columns[lastColIndex];
        lastCol.AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
    }
}

Visual Basic:

<!-- language: lang-vb -->
Public Module Utilities

    <Extension()>
    Public Sub StretchLastColumn(ByVal dataGridView As DataGridView)
        Dim lastColIndex = dataGridView.Columns.Count - 1
        Dim lastCol = dataGridView.Columns.Item(lastColIndex)
        lastCol.AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill
    End Sub

End Module