Thread Tree Overview
Sample Application: Usenet Views
How to Add a Thread Tree to Your Application
A thread tree is a hierarchy of nodes with the following characteristics:
By default, the root node in a thread tree is drawn at the top and the remaining nodes are drawn from top to bottom in order of ascending metric values. The parent-child node relationships are indicated with lines. Here is a sample thread tree:

If there is a selected node, as there is in this example, the selected node and the lines connecting it to its ancestors and children are highlighted.
Thread trees can also be drawn from left to right instead of top to bottom, and a variety of line styles can be used. The simple rectangles shown here are usually replaced by the application using custom "owner draw" code.
The Microsoft Research Community Technologies team has developed three thread tree components. ThreadTreeGenerator is a drawing engine without its own user interface. It takes a set of node data, generates a thread tree from the data, and draws it onto a bitmap or Graphics object provided by the caller. It can be used in a variety of environments, including Web applications that generate images on the server for downloading to client browsers.
The ThreadTreeControl wraps the ThreadTreeGenerator into a Windows Forms control. It can be added to the Visual Studio toolbox and dropped into any Windows Forms application
The ThreadTreeScrollBar is a scroll bar control specialized for use with a ThreadTreeControl. The scroll bar displays a copy of the thread tree contained in the ThreadTreeControl it's connected to, but shows only the tree's lines and glyphs. The user can select a node in the ThreadTreeControl by clicking on a glyph in the ThreadTreeScrollBar. If there are more nodes than will fit within the ThreadTreeControl, the ThreadTreeScrollBar includes a shaded scroll box that highlights the visible nodes. The user can drag the scroll box to scroll the ThreadTreeControl.
Sample Application: Usenet Views
Usenet Views is a .NET Windows Forms application that displays Usenet statistics in a variety of graphical formats. The application's "Thread Tree" view uses a ThreadTreeControl and a ThreadTreeScrollBar to show the messages in a Usenet conversation. Here, for example, is part of one conversation:
Usenet Views is currently not available outside of Microsoft, but see the Netscan Web site for a related application.
How to Add a Thread Tree to Your Application
ThreadTreeGenerator, ThreadTreeControl, and ThreadTreeScrollBar are just a few of the data visualization components that have been developed by the Microsoft Research Community Technologies team. See the Visualization Components overview for further information.
Questions and comments can be posted to the microsoft.public.research.netscan.discussion newsgroup.