Visit Gigasoft's Web Site
 ProEssentials v9 Help
Chapter 2: VB .NET WinForm Walk-Through

ProEssentials WinForm interfaces are used when creating stand-alone client-side EXEs to be distributed and ran on an end-users machine.

Thank you for reading this and above FAQ section as it will speed your development and maximize your implementation's overall quality. Knowing our demo and demo project will be your best source of info.


More helpful info can be found here .NET Overview




1) Start Visual Studio.NET and create a new project targeting a [Windows Application] using Visual Basic as your language. Accept the default name of [WindowsApplication1].

Note: Under the Project menu, select "Project Properties". From the Compile tab, select the "Advanced Compile Options..." button. Change the "Target CPU" setting to x86. This is necessary as the following ProEssentials assembly links to a native 32 bit DLL. This setting will allow the resulting exe to run on both 32 and 64 bit systems and provide the easiest deployment. For native 64 bit, see our ReadMe.txt files in the ProEssentials9/DotNetAnyCpu or ProEssentials9/DotNet64 directories where ProEssentials is installed.


2) When the new project opens, you will be presented the design view of "Form1.vb".


If you have already installed the ProEssentials WinForm interfaces, skip to step 4.


Customize Toolbox... Dialog Adding ProEssentials to Visual Studio.NET...

3) Installing WinForm interfaces into Visual Studio.NET

  • Under the Tools menu, select [Choose ToolboxItems...],
  • If not selected, left click the [.NET Framework Components] tab,

  • Left click the [Browse...] button and find the file "Gigasoft.ProEssentials.dll" found in the DotNet32 subdirectory where you installed ProEssentials. By default, this should be located at "C:\ProEssentials9\DotNet32\"

  • Select the file "Gigasoft.ProEssentials.dll" and close the [Open File] dialog,

  • The [Choose Toolbox Items] dialog should now show 5 highlighted controls: Pe3do, Pego, Pepco, Pepso, and Pesgo.

  • Close the dialog and the 5 new ProEssentials components will be at the bottom of the toolbox.


Form1.vb [Design]... Adding ProEssentials to a Form...

4) Double click the [Pego] tool within the toolbox. This places an instance of the Pego component within "Form1.vb". Left click bottom-right corner of control and drag down-right to fill up client area of Form1. The adjacent image shows what you see.


This represents the default state of a ProEssentials Graph. The default state has one subset with four data points. In the course of constructing your own charts, you'll set the properties PeData.Subsets and PeData.Points which define the quantity of data your chart will hold. You'll then pass data via the PeData.Y(subset, point) two dimensional property array. The following section shows example code of passing data.


ProEssentials uses the terms Subsets and Points but you can think of these as Rows and Columns. Passing data is as simple as filling each Subset with Points worth of data.

  Adjusting design time settings...

5) Note, when setting color and font size attributes, we recommend setting the parent Form's versions as ProEssentials will use the parent form's settings to help facilitate a uniform look among sibling controls.

If new to Visual Basic, the (Name) property is probably the most fundamental property as its name is reflected in all code. For example,  Pego1.PeData.Subsets = 1 is a line of code, and it shows how the (Name) property (Pego1) starts the line.


Form1.vb [Code]...

6) Double click Form1's Title/Caption Bar to open the code view for "Form1.vb" with default Form1_Load event initialized.


The cursor will be within the Form1_Load code section, enter the following code into this section.


You can copy and paste, but hand-typing a few lines of this code will really help familiarize yourself with the Gigasoft.ProEssentials namespace.  


Note: adding the following Imports declaration at the top of "Form1.vb" will shorten enumeration syntax.

Imports Gigasoft.ProEssentials.Enums


Pego1.PeString.MainTitle = "Hello World"

Pego1.PeString.SubTitle = ""


Pego1.PeData.Subsets = 2

Pego1.PeData.Points = 6

Pego1.PeData.Y(0, 0) = 10 : Pego1.PeData.Y(0, 1) = 30

Pego1.PeData.Y(0, 2) = 20 : Pego1.PeData.Y(0, 3) = 40

Pego1.PeData.Y(0, 4) = 30 : Pego1.PeData.Y(0, 5) = 50

Pego1.PeData.Y(1, 0) = 15 : Pego1.PeData.Y(1, 1) = 63

Pego1.PeData.Y(1, 2) = 75 : Pego1.PeData.Y(1, 3) = 54

Pego1.PeData.Y(1, 4) = 25 : Pego1.PeData.Y(1, 5) = 43

Pego1.PeString.PointLabels(0) = "Jan"

Pego1.PeString.PointLabels(1) = "Feb"

Pego1.PeString.PointLabels(2) = "Mar"

Pego1.PeString.PointLabels(3) = "Apr"

Pego1.PeString.PointLabels(4) = "May"

Pego1.PeString.PointLabels(5) = "June"


Pego1.PeString.SubsetLabels(0) = "For .Net Framework"

Pego1.PeString.SubsetLabels(1) = "or MFC, ActiveX, VCL"

Pego1.PeString.YAxisLabel = "Simple Quality Rendering"


Pego1.PeColor.SubsetColors(0) = System.Drawing.Color.FromArgb(60, 0, 180, 0)

Pego1.PeColor.SubsetColors(1) = System.Drawing.Color.FromArgb(190, 0, 0, 130)

Pego1.PeColor.BitmapGradientMode = False

Pego1.PeColor.QuickStyle = Gigasoft.ProEssentials.Enums.QuickStyle.LightShadow


Pego1.PeTable.Show = Gigasoft.ProEssentials.Enums.GraphPlusTable.Both

Pego1.PeData.Precision = Gigasoft.ProEssentials.Enums.DataPrecision.NoDecimals


Pego1.PeFont.Label.Bold = True

Pego1.PePlot.Method = Gigasoft.ProEssentials.Enums.GraphPlottingMethod.Bar

Pego1.PePlot.Option.GradientBars = 8

Pego1.PePlot.DataShadows = Gigasoft.ProEssentials.Enums.DataShadows.ThreeDimensional
Pego1.PeFont.FontSize = Gigasoft.ProEssentials.Enums.FontSize.Large

Pego1.PeUserInterface.HotSpot.Data = True


Pego1.PeLegend.Location = Gigasoft.ProEssentials.Enums.LegendLocation.Left

Pego1.PePlot.Option.BarGlassEffect = True

Pego1.PeConfigure.RenderEngine = Gigasoft.ProEssentials.Enums.RenderEngine.Direct2D

Pego1.PeConfigure.AntiAliasGraphics = True

Pego1.PeConfigure.AntiAliasText = True




Pego1.Refresh() 'call standard .NET Refresh method to force paint


7) The code above enabled the DataHotSpot event, so we should place some appropriate code in the DataHotSpot event.


Within the two drop-down combo boxes at top of code view window, select [Pego1] within the left combo box. Select [PeDataHotSpot] within the right combo box.  The cursor should be within the Pego1_PeDataHotSpot event.  Or see the red annotations in the bitmap below to add the hot spot event.


Add the following code to the Pego1_PeDataHotSpot event.


Windows.Forms.MessageBox.Show("Point " + e.PointIndex.ToString() + _

    " with a value of " + Pego1.PeData.Y(e.SubsetIndex, e.PointIndex).ToString())


The "Form1.vb" code window should contain...

8) Save and run the project. Your project will show an image as follows. Move the mouse over a bar and click to trigger the DataHotSpot event.

Run the project... Success!!!

This completes this walkthrough.


Please read the remaining sections within Chapter 2 and review the demo code and documentation that's installed with the eval/product.


Once installed, the demo program can be accessed via shortcut...


Start / All Programs / ProEssentials v9 / PEDemo


Note that our main demo is replicated in VB.NET, C#.NET,  WPF, and MFC projects all accessible from the start menu. These are great for modifying an existing demo to test potential modifications before implementing within your applications.