So I’ve been doing some windows development lately and I needed a wizard. I could’ve SWORE there was one built-in with Visual Studio, but apperently not! Or maybe I was thinking of ASP.NET. Anyhow, so I thought "Meh, I’ll just build one". I spent probably 10 hours and 9 of which was researching. I’ve learned a lot about the Designers that go behind the design-time of a component. The one thing I couldn’t do was do the drag-drop on each "wizard page", and I tried probably 7 different approaches (and I never knew if any of them were correct!)
I used Reflector to see how the TabControl is done – and I didn’t see anything obvious in their designer. So I looked around and tried out a few different free wizards. This one:
ended up being by-far the best. It’s very well-written and pretty much production quality. So I started from there and tweaked what I needed. The odd part though, is this supports that drag/drop functionality – and I still, for the life of me, cannot figure out how that is done?? At design-time, how do you allow drag/drop of controls onto a particular control on your component? And further, I never did solve the "serialization problem", where it seems if I was going to keep a collection of controls, I needed to write a custom serializer. But that didn’t seem right, because you’d have to have a serializer for every type of control that you expect the end-developer to use, which obviously wouldn’t work!
ANYhow, long story short – if you need a wizard control on WinForms – that’s the link, enjoy!!