devxlogo

Setting the width of the last column of a ListView when the control is resized

Setting the width of the last column of a ListView when the control is resized

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

See also  How IoT Tech Will Transform Logistics
devxblackblue

About Our Editorial Process

At DevX, we’re dedicated to tech entrepreneurship. Our team closely follows industry shifts, new products, AI breakthroughs, technology trends, and funding announcements. Articles undergo thorough editing to ensure accuracy and clarity, reflecting DevX’s style and supporting entrepreneurs in the tech sphere.

See our full editorial policy.

About Our Journalist