Set the ListBox's HorizontalScrollbar to True. I found that at least some times the control doesn't leave quite enough room for the longest item. If you add a couple of spaces at the end of the longest item (or every item), it works fine.
If you only want it when necessary, loop through the items in the list. Use CreateGraphics to get a Graphcis object for the ListBox and use its MeasureString method to see how wide the strings are. Compare them to the control's width (minus a little room for the control's borders). Then set the property accordingly.
Author of "Visual Basic 2005 Programmer's Reference"