The behavior of the whole autosize and -1 and -2 jive in ListView Column constructors is a bit confusing. This is the what I've found when it comes to sizing ListView columns in VB.NET:

Public Class Form1
    Inherits System.Windows.Forms.Form

    Friend WithEvents ListView1 As _
        New System.Windows.Forms.ListView

    Private Sub Form1_Load(ByVal sender As System.Object, _
        ByVal e As System.EventArgs) Handles MyBase.Load

        With Me.ListView1
            .CheckBoxes = True
            .Name = "ListView1"
            .TabIndex = 2
            .Dock = DockStyle.Fill
            .View = View.Details
            .CheckBoxes = True

            Select Case 4
                Case 0
                    ' 0 width columns
                    Me.addTestItems()

                    .Columns.Add("col1", -2, HorizontalAlignment.Left)
                    .Columns.Add("col2", -2, HorizontalAlignment.Left)
                    .Columns.Add("col3", -2, HorizontalAlignment.Left)


                Case 1
                    ' 0 width columns
                    .Columns.Add("col1", -2, HorizontalAlignment.Left)
                    .Columns.Add("col2", -2, HorizontalAlignment.Left)
                    .Columns.Add("col3", -2, HorizontalAlignment.Left)

                    Me.addTestItems()

                Case 2
                    ' sized 100 cols
                    .Columns.Add("col1", 100, HorizontalAlignment.Left)
                    .Columns.Add("col2", 100, HorizontalAlignment.Left)
                    .Columns.Add("col3", 100, HorizontalAlignment.Left)

                    Me.addTestItems()

                Case 3
                    ' "colX-sized" cols
                    .Columns.Add("col1", 100, HorizontalAlignment.Left)
                    .Columns.Add("col2", 100, HorizontalAlignment.Left)
                    .Columns.Add("col3", 100, HorizontalAlignment.Left)

                    .Columns(0).Width = -2
                    .Columns(1).Width = -2
                    .Columns(2).Width = -2

                    Me.addTestItems()


                Case 4
                    ' largest sized col entry sized columns
                    .Columns.Add("col1", 100, HorizontalAlignment.Left)
                    .Columns.Add("col2", 100, HorizontalAlignment.Left)
                    .Columns.Add("col3", 100, HorizontalAlignment.Left)

                    Me.addTestItems()

                    .Columns(0).Width = -2
                    .Columns(1).Width = -2
                    .Columns(2).Width = -2
            End Select

        End With

        Me.Controls.Add(Me.ListView1)
        Me.Width = 400
        Me.Height = 400
    End Sub

    Public Sub addTestItems()

        Dim i As Integer
        Dim strTemp As String = ""

        Dim item1 As New ListViewItem("Steve Martin")
        Dim item2 As New ListViewItem("Irene Suzuki")
        Dim item3 As New ListViewItem("Ricky Ericsson")


        '// Create items
        item1.SubItems.Add("Programming .NET")
        item1.SubItems.Add("39.95")

        item2.SubItems.Add("VB.NET Core Studies")
        item2.SubItems.Add("69.95")

        item3.SubItems.Add("Passing Your .NET Exams")
        item3.SubItems.Add("19.95")

        '// Add the items to the ListView.
        Me.ListView1.Items.AddRange(New ListViewItem() {item1, item2, item3})

        For i = 1 To 20
            strTemp = strTemp & i
            Me.ListView1.Items.Add(strTemp)
        Next
    End Sub

End Class