Login | Register   
LinkedIn
Google+
Twitter
RSS Feed
Download our iPhone app
TODAY'S HEADLINES  |   ARTICLE ARCHIVE  |   FORUMS  |   TIP BANK
Browse DevX
Sign up for e-mail newsletters from DevX


Tip of the Day
Language: VB7
Expertise: Intermediate
Jun 8, 2002

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 - 27
End 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
Marco Bellinaso
 
Comment and Contribute

 

 

 

 

 


(Maximum characters: 1200). You have 1200 characters left.

 

 

Sitemap
Thanks for your registration, follow us on our social networks to keep up-to-date