When I first started with VB.NET I was a little disorriented with all the changes from VB6. Once I just jumped in over my head, things just started to amaze me.
Here is a list of thing that amazed me about VB.NET versus VB6:
1) Alot of Win32 API calls built in the framework (not so confusing to use)
2) Better OOP / True Inheritance (I use Inheritance to add little features to Forms/Controls, you have the code in one place now, instead of having to paste it on every form in your application)
3) Better Delegate handling (You can have one function handle the same event for multiple objects, this also reduces the amount of copying and pasting code.)
4) Dim myVar As String = "Sweet"
5) You can have the code for multiple classes with in the same file. (That is why there is "Module/End Module")
6) Try/Catch blocks for trapping errors, instead of just using On Error (nicer for doing different error trapping in seperate parts of the same function)
7) "Get/Set End Get/End Set" (I think this make the structure of the code easier to read)
8) Faster Code execution versus VB6
9) No more DLL hell (Do I really need to explain this one)
10) And there are many, many more...
These are not listed in any particular order, that is just the order that they came to mind. There are many more reasons why I love VB.NET much more than VB6.
Don't think that I am new to VB6 or VB.NET. I have been working with Visual Basic since about 1997, I am a Microsoft Certified Solution Developer with Visual Studio 6, and a Microsoft Certified Application Developer with The .NET Framework. I am an expert with the Visual Basic language (both VB6 and VB.NET).