When you resize a ListView control (this happens automatically if the ListView is docked to the form, and the user resizes the form), it’s nice to have the last column to be resized accordingly to cover the available space. To do this, handle the ListView’s Resize control (in .NET any control has a Resize event, not just the Form as in VB6) and calculate the width of the last column by subtracting the width of the other columns from the ListView’s total width. If you have only two columns, the required code would be similar to the following:
Private Sub ListView1_Resize(ByVal sender As Object, _ ByVal e As System.EventArgs) Handles ListView1.Resize ListViewHeader2.Width = ListView1.Width - ListViewHeader2.Width - 27End Sub
This code works always fine when the control is enlarged, but sometimes when the control is shrunk the ListView displays the horizontal scrollbar, even if the last column was correctly resized and the scrollbar is not necessary. To solve this issue, just wrap the code that sets the new width of the column between the ListView’s BeginUpdate and EndUpdate method calls, as shown below:
Private Sub ListView1_Resize(ByVal sender As Object, _ ByVal e As System.EventArgs) Handles ListView1.Resize ListView1.BeginUpdate() ListViewHeader2.Width = ListView1.Width - ListViewHeader2.Width - 27 ListView1.EndUpdate()End Sub