All members of the base class must be Protected and then to make the class itself invisible to the form you could mark it MustInherit.
This assumes your heirarchy is compiled into its own namespace as a dll. The user of your form will be able to see the names of your base classes by typing, for example, “Dim cc as” as it will be listed by Intellisense. However, that is all, the user will be able to do – he/she will not be able to instantiate or study the guts of the classes. However, you will need an efficient obfuscator if you want to defend against the Reflector decompiler.