For years, Borland's Delphi development system has sported dockable tool windows in the IDE. And yet Borland have never provided application developers with docking window support in the VCL library. In the same way, Visual Studio has great looking dockable windows but - you've guessed - there's a distinct lack of docking window components in .NET. Is this some developer conspiracy?
Once you've finished frantically searching through .NET for its nonexistent dockable window classes, you'll perhaps take a look at the various developer-related 'how to' articles around, such as those at www.codeproject.com. But building a decent docking system is a lot of work. Enter Divelements SandDock.
SandDock works with VS.NET 2003 as well as the newer flagship VS.NET 2005. The product is typified by a rich design-time experience which allows you to quickly lay out a hierarchy of dockable windows and tabbed documents.
At run-time, the user docks and undocks forms using a paradigm similar to that used in VS.NET 2005 with pop-up visual indicators which show exactly where a window will be dropped, thus removing any ambiguity. (This can be optionally turned off, but we can't see why you would want to do that).
You start by adding a non-visual SandDockManager component to your form. Once done, you can use the manager's smart tags to add dockable windows or tabbed documents to your form, positioning them as required for the default, initial view that the user sees.
The dock manager also has a property, Renderer, which can be set to mimic the look/feel of VS.NET 2003 and VS.NET 2005 among others. Each of the three built-in renderer settings is a nested property that can be opened up to provide much finer control over individual elements of the interface.
The other major component, TabControl, provides a quick way of adding a set of tabbed documents to a form, for those who don't require the full functionality provided by the tabbed document interface. SandDock's sophisticated docking features add little to the memory footprint of your application; the .NET assembly containing the docking code is only 220Kbytes in size and can be deployed side by side with your executable. Comprehensive online help is provided as a compiled HTML (.CHM) file.