Go Premium for a chance to win a PS4. Enter to Win

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 248
  • Last Modified:

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
0
jc64
Asked:
jc64
  • 5
  • 4
  • 2
  • +3
1 Solution
 
ArkCommented:
Use .tag property of listitem
Dim itm As ListItem
Set itm = ListView1.Add( , ,"John")
itm.Tag = 2

Cheers
0
 
ArkCommented:
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
 
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
Concerto Cloud for Software Providers & ISVs

Can Concerto Cloud Services help you focus on evolving your application offerings, while delivering the best cloud experience to your customers? From DevOps to revenue models and customer support, the answer is yes!

Learn how Concerto can help you.

 
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

Featured Post

Technology Partners: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

  • 5
  • 4
  • 2
  • +3
Tackle projects and never again get stuck behind a technical roadblock.
Join Now