Northwoods GoDiagram v5.3.0 for Visual Studio 2017, 2015, 2013, 2012

Northwoods GoDiagram v5.3.0 for Visual Studio 2017, 2015, 2013, 2012
Northwoods GoDiagram v5.3.0 for Visual Studio 2017, 2015, 2013, 2012

The GoDiagram library, Northwoods.Go, is a set of controls and classes built on the .NET platform. GoDiagram makes it easy to deliver editors that allow users to see and manipulate diagrams of two-dimensional graphical objects arranged in a scrollable window. GoDiagram provides a variety of basic graphical objects such as rectangles, ellipses, polygons, text, images, and lines. You can group objects together to form more complex objects. You can customize their appearances and behaviors by setting properties and overriding methods.

A True .NET component

GoDiagram is written entirely in C#. It only depends on the standard .NET Framework classes and does not explicitly call any external functions.

Here is the full VB.NET source code to MinimalApp. The screenshot shows how the MinimalApp appears after selecting the two initial nodes, drag-copying them, moving them, creating links between some of them, and then renaming a blue one to “blue” and a magenta one to “magenta”.

GoDiagram View

A GoDiagram view is a control that displays a GoDiagram document. It supports mouse-based object manipulation, including selecting, resizing, moving and copying using drag-and-drop. GoDiagram organizes input behaviors into tools that you can modify, override, or add or remove from a view. The view also supports in-place editing, printing, and grids.

GoDiagram Document

A GoDiagram document implements a model that supports manipulation of objects. Adding an object to the document makes it visible in the document's views. You can organize objects in layers. GoDiagram provides support for composing and manipulating graphs (node & arc diagrams), where nodes have ports that are connected by links.

Flexibility and Extensibility

The GoDiagram library is flexible and extensible. Predefined node classes make it easy to build many kinds of graphs. You can easily customize most objects for application-specific purposes by setting properties or by subclassing. You can add completely new graphical objects to the existing framework.


To provide greater customizability and ease of use, Northwoods offers, as a separate option, another library, Northwoods.Go.Layout. This option extends GoDiagram by providing sophisticated automatic layout algorithms for nodes in graphs. The AutoLayout component is sold and documented separately.

The Instruments library for GoDiagram is a set of classes built to display numeric values in a graphical manner as part of GoDiagram applications. The classes implement scale objects that display a scale with regular markings and labels and they implement indicator objects that indicate a value on a scale.

The objects can be customized and combined to present many different kinds of appearances. In the real world, depending on the industry, such things are called meters, dials, rulers or gauges. Because there is so much customization that can be done, GoInstruments does not provide any prebuilt instruments. The InstrumentDemo sample application, however, does define many such objects for various purposes and with various appearances and behaviors.

The code includes an InstrumentDemo sample application (shown above). The InstrumentDemo application also makes all of the object properties visible by means of a PropertyGrid control.

One of the advantages of Instruments is that it is part of a larger environment that supports graphics other than the instruments themselves, making it possible to add the instruments to a more complicated diagram.

An excellent component choice for building SCADA and industrial monitoring applications, featuring double buffered output to eliminate filcker.

Users of Guests are not allowed to comment this publication.