Dialog1 is the type of the object you are creating.
Dim oDialog1 as Dialog1 = Dialog1
is the same as saying
MyCat is a Cat, and it's a Cat.
Doesn't quite make sense.
If you need to know about how many legs cats have, or if cats are furry, then you can say Cat.CountLegs, but you can't say Cat.GetName or Cat.Age because you don't know which cat you're talking about.
It's the same with your Dialog.
Dim oDialog1 as Dialog1 = Dialog1
is not referring to any particular Dialog, just Dialog1's in general, which doesn't make sense (and also shouldn't compile in VB.NET 2008).
Where as
Dim oDialog1 as Dialog1 = New Dialog1
is giving you a brand new Dialog1, called oDialog1. Everything you ask about oDialog1 will give you generic, default about Dialog1 object.
Dialog1 will not have a position, because it doesn't exist yet. But because you've created a new instance of one by using the NEW keyword, oDialog1 will be your first object of the Dialog1 type - you can give it a position, etc.
If you call
Dim oDialog2 as Dialog1 = New Dialog1
Then you'll have two Dialog1's - each with a separate position, etc.
It will help make a bit more sense if you give Dialog1 and oDialog1 better names, such as UserConfirmationDialog and confirmExit, respectively.
It will then become something like
Dim confirmExit as UserConfirmationDialog = New UserConfirmationDialog.
and possibly
Dim confirmDelete as UserConfirmationDialog = New UserConfirmationDialog.