A "!" is a way of separating an object from a collection. The "." is used to separate an object from a collection, property, or method.
I think all those forms that you listed will work (though I haven't tried them).
The way you wrote it, "Control" is the name of a control and thus is a member of the controls collection that belongs to the "Me" form object.
The full syntax of this expression: Me!txtBox.Name is this Me.Controls("txtBox").Properties("Name"). Since the controls collection is the default for the Me form object, you can abbreviate it to Me("txtBox"). Then you can replace the ("") format with "!" since txtBox is an object in the controls collection, so you have Me!txtBox or Me.txtBox.
It's best to use the full notation when possible, since behind the scenes, Access is actually expanding all your notation for you, but I wouldn't get nuts over it.