Programming ListView

I have a listview I want to display the following information(ID FirstName LastName SSS). I want each row to show(FirstName LastName SSS) and each the ID of each row to be hidden and diplayed when someone double clicks that row. For example if I have a combobox called combo1 I can do this. combo1.AddItem("John") combo1.itemData(2) I want something similar with a listview control.

I want also to correctly size the listView and avoid horizontal scrolls.


here is my code

w = ListView1.Width / 4

listView1.ColumnHeaders.Add , , "First name", w
listView1.ColumnHeaders.Add , , "Last name", w
listView1.ColumnHeaders.Add , , "DOB", w
listView1.ColumnHeaders.Add , , "SSN", (ListView1.Width - 3*w)

But that is shows the horizontal scroll bar.

Thank you
jc64Asked:
Who is Participating?

Improve company productivity with a Business Account.Sign Up

x
 
ArkConnect With a Mentor Commented:
Or, if ID is unique, use .Key property:

ListView1.Add ,"key" &CStr(ID) ,"John")

After this you can access ListItem by key:
ID = 100
ListView1.Listitems("key" & ID).Selected = True

or
Private Sub ListView1_ItemClick(ByVal Item As ComctlLib.ListItem)
   Debug.Print Item.Key
' or Debug.Print Item.Tag
End Sub
0
 
ArkCommented:
Use .tag property of listitem
Dim itm As ListItem
Set itm = ListView1.Add( , ,"John")
itm.Tag = 2

Cheers
0
 
jc64Author Commented:
Ark, in the frist comment, how can I access the tag value.

For instance when someone clicks

msgBox listview.something

to display the tag value

Thanks
0
Free Tool: SSL Checker

Scans your site and returns information about your SSL implementation and certificate. Helpful for debugging and validating your SSL configuration.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

 
ArkCommented:
msgbox ListView.SelectedItem.Tag

Cheers
0
 
ArkCommented:
Or
ListView1.ListItems(5).Tag
0
 
Arthur_WoodCommented:
The problem with the horizontal scroll bar appearing seems to be because the widht that you are using for the columns IS NOT what is actually being used.  I tried the following experiment:

Using your code exactly as shown, with a ListView which had a width of 3180 (w=795).

After setting the columnheaders as in the code, the scroll bar appears, and in the Immediate window, I displayed the value of the ListView1.ColumnHeaders(1).Width  to get a value, as set in the control of: 794.8347

I then played around with the width value w, setting it to specific values, and assigning the same value to all 4 columns, to find what value was required in order to NOT get a Horizontal Scroll Bar:

The Maximum value of w that did not create a Scroll Bar was
787.4646!!!   Go Figure.



0
 
superchookCommented:
I think it's related to the borders between columns, and possibly an allowance for different fons / char spacing.
0
 
Arthur_WoodCommented:
It would appear that if you allow approximately 1% of the ListView Width for these "related items", then the column width that you assign will come out about right.  thus you would have :

REMEBER that the Width paroperty of a column is a type SINGLE value (not INTEGER):

Dim w as Single

w = 0.99 * ListView1.Width/4

0
 
GrahamAtJobserveCommented:
Remember to allow for the width of the vertical scroll bar when setting the column widths, or your list view will suddenly get a horizontal scroll when the list fills sufficiently to need a vertical scroll bar.

Columns widths are a pain though cos you cant see them at design time.

Graham.
0
 
jc64Author Commented:
Thank you all and I am Ok with Ark's answer for the tag potion of the quation. I am considering the Horizaontal scroll problem now and will make a decistion today.

Thanks
0
 
johnreadCommented:
Remember you can set the width of a column to zero.
0
 
jc64Author Commented:
I want to accept the answers of ARK and Arthur_Wood and will split the 200 ponts between them. I am going to reduce the points to 100 and will accept ARK's comment. then I will create another one with the name "List View For Arther_wood". Arthur_Wood, please add some comment to that question and I will award you the points.


Thanks All, I appreciate.
0
 
jc64Author Commented:
Sorry the system will not allow me the reduce the points. Anyone with a suggestion on how I can share the points to Ark and Arhter_wood.

Thanks
0
 
jc64Author Commented:
Sorry the system will not allow me the reduce the points. Anyone with a suggestion on how I can share the points to Ark and Arhter_wood.

Thanks
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.