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

By submitting your information, you agree that devx.com may send you DevX offers via email, phone and text message, as well as email offers about other products and services that DevX believes may be of interest to you. DevX will process your information in accordance with the Quinstreet Privacy Policy.


Tip of the Day
Language: Visual Basic
Expertise: Intermediate
Aug 13, 1999

WEBINAR:

On-Demand

Application Security Testing: An Integral Part of DevOps


Q&D Sort Using Hidden List Box

VB has no built-in Sort function. Although lots of sort routines of varying complexity and performance are available, there's a simple "cheat" that you might find useful. The standard VB ListBox control has a Sorted property. Anything you add to a list box will automatically be placed in its proper rank, if you set Sorted to True before running the program. (Sorted is read-only at run time.)

Then simply use the AddItem method to insert items, and the ListBox maintains them in sorted order. A couple things to watch out for: list boxes store everything as strings. Although you can use Evil Type Coercion (ETC) to load numbers into them, keep in mind that as strings, they're sorted according to string rules. That means that 900 are perceived as greater than 1,000. This code uses random numbers and adds leading zeros to them as needed after ETCing them to strings. This code uses two CommandButtons, one ListBox, and one TextBox with its MultiLine property set to True. Click on Command1 to load up the ListBox, and click on Command2 to extract the data one element at a time and display it in Text1.

Don't forget to set the ListBox's Visible property to False for your real applications:

 
Option Explicit
Dim c As Long
Dim i As String
Private Sub Command1_Click()
	List1.Clear
	For c = 1 To 10
		i = Int(Rnd * 10000)
		While Len(i) < 4
			i = "0" + i
		Wend
		List1.AddItem i
	Next
End Sub
Private Sub Command2_Click()
	Text1 = ""
	For c = 0 To List1.ListCount
		Text1 = Text1 & List1.List(c) & vbCrLf
	Next
End Sub
Ron Schwarz
 
Comment and Contribute

 

 

 

 

 


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

 

 

Sitemap
×
We have made updates to our Privacy Policy to reflect the implementation of the General Data Protection Regulation.
Thanks for your registration, follow us on our social networks to keep up-to-date