That's a funny thing about classes. I think that debugging should be the second thing covered, but it is often not covered at all. Without that, the best you can do is stare at the code hoping for inspiration, which doesn't work well for experienced coders, let alone somebody just starting out.

To set a breakpoint, put the cursor on the line you want to set the breakpoint on and press F9. This should hightlight the line in maroon and add a maroon ball in the left margin. Once you see where that ball is, you can add and remove breakpoints just by clicking in that margin, which saves you the need to press F9, or position the cursor.

You can set breakpoints on most lines, but not whitespace, comments, or variable declarations that lack initialization. In other words, you can't set one on this line:

Dim x As Integer

but you could on this line:

Dim x As Integer = 5

Once you have set a breakpoint, when you run the code, execution will pause when the breakpoint is reached, and you will be taken to the code. At that point, you can see what is in every variable that is in scope. Generally, you can hover the mouse over the variable and a tooltip will show you what it contains. Sometimes that doesn't work, though, in which case you can always highlight the variable and press Shift+F9. In fact, you can highlight more than just a variable and do this. For example:

If x > 5 Then

You could highlight the "x > 5" part and press Shift + F9 and you will see how that expression evaluates (so, either True or False). If you highlight a class and press Shift+F9, you can look at all the properties and settings of the class. That's pretty powerful.

Next, you can press either F10 or F11 to step forwards through the code line by line. F10 does something different from F11, but I'll leave that up to you to play with.

Finally, at any time you can resume normal operation with F5.

So, by setting breakpoints and stepping through the code, you can see what variables hold, how they change, which branch execution takes at any If statements, and by looking at the conditions, you can see why execution took that path. Instead of a black box, you see what the computer sees, what every variable holds, and what the computer is doing. Without that, code is like being asked to fix a balky engine without being able to see what it is doing.