Re: [2005] Checked List Box
The content items of a Listbox in .NET are objects, so you can include your display and value items in an object. This gives you a lot more flexibility than what you had in VB6 but you'll need to think beyond just strings.
Also, arrays and listboxes are much easier to deal with than they were in VB6. Take a look at the AddRange method.
Re: [2005] Checked List Box
If you were using s ListBox you assign a list of objects to the DataSource and then set a DisplayMember and ValueMember. The DisplayMember is the name of the property whose values get displayed and the ValueMember is the name of the hidden property you speak of. The corresponding value of the current selection would be retrieved from the SelectedValue property.
The CheckedListBox doesn't support data-binding so that's not possible. You do as bgmacaw suggests and define a class or structure with a property corresponding to your hidden value. You'd then override the ToString method to return the values you want displayed in the control. You can then add items of that type to the CheckedListBox and the return value of each item's ToString method will be displayed and you can get the hidden value from the property you declared.