There is a submission in the VB.NET CodeBank forum from gigemboy that deals with this topic specifically.