I was hoping someone would be kind enough to throw some advice my way here.
I'm working on an application (still) that I would like to provide "Wizards" in. I have a general idea of how I would like to implement something like this, but staying in line with OOP, I would like to have a base class that derives from a form (basically a form) with some standard controls, buttons, progress bar, and a "canvas" area for the wizard steps to show.
The idea is that I would have a single form that would act as the base of the wizard, or the Host. This form would be partially implemented having some methods that cannot be overridden so that basic functionality applies to all wizards.
The developer would then, if a wizard was needed, create a new form that inherited from this partial form. Certain properties could be set (like the text to show on the buttons, whether or not to allow canceling out of a wizard, should a progress bar be visible etc while others could not be.
When the developer creates the inherited form, just like an interface, they would need to implement the "interface" of the form they inherited from.
I hope this makes sense...
Another way of saying it would be that I would like to create a form that has certain methods and properties, some that can be overridden and some that cannot. The form is not fully implemented though, only partially. The forms that derive from it would need to finish that implementation for it to be useful.
I've been reading about Abstract classes and the like and it seems like this may be what I am looking for, but I don't know. It seems like abstract classes cannot implement anything which is only part of what I am looking for.
Any ideas or suggested readings?