create gauge at runtime

Hello,
I'm trying to use the RadialGauge with VB Net 2017 (Framework 4.6).
This is the code I wrote:

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

        Dim HOccupate As Integer = 200
        Dim HLibere As Integer = 50
        Dim rg As New Syncfusion.Windows.Forms.Gauge.RadialGauge
        rg.GaugeLabel = (HOccupate + HLibere).ToString + " / " + HLibere.ToString
        rg.MinimumValue = 0
        rg.MaximumValue = HOccupate + HLibere
        rg.MajorDifference = 30
        rg.Size = New Size(300, 300)
        rg.EnableCustomNeedles = True
        rg.Ranges.Clear()
        Dim rangeOccupate As New Syncfusion.Windows.Forms.Gauge.Range()
        rangeOccupate.Color = System.Drawing.Color.Red
        rangeOccupate.Height = 10
        rangeOccupate.InRange = False
        rangeOccupate.Name = "OreOccupate"
        rangeOccupate.RangePlacement = Syncfusion.Windows.Forms.Gauge.TickPlacement.OutSide
        rangeOccupate.StartValue = 0F
        rangeOccupate.EndValue = HOccupate
        rg.Ranges.Add(rangeOccupate)
        Dim rangeLibere As New Syncfusion.Windows.Forms.Gauge.Range()
        rangeLibere.Color = System.Drawing.Color.Green
        rangeLibere.Height = 10
        rangeLibere.InRange = False
        rangeLibere.Name = "OreLibere"
        rangeLibere.RangePlacement = Syncfusion.Windows.Forms.Gauge.TickPlacement.OutSide
        rangeLibere.StartValue = HOccupate
        rangeLibere.EndValue = HOccupate + HLibere
        rg.Ranges.Add(rangeLibere)
        Me.Controls.Add(rg)

    End Sub


Only the green range is shown.
Where am I wrong?
Thank you.
Beppe

3 Replies

MK Mallika Kannan Syncfusion Team January 22, 2018 09:23 AM UTC

Hi Beppe 
 
Thank you for contacting Syncfusion support. 
 
In RadialGauge, it is needed to define End Value before Start value of Range. This reported behavior achieved by place the start range value as below End Range value. Please make use of the below code Example. 
 
Code Example: [VB] 
 
Dim rangeOccupate As New Syncfusion.Windows.Forms.Gauge.Range() 
rangeOccupate.Color = System.Drawing.Color.Red 
rangeOccupate.Height = 10 
rangeOccupate.InRange = False 
rangeOccupate.Name = "OreOccupate" 
rangeOccupate.EndValue = HOccupate 
'Place the Red Range start value 
rangeOccupate.StartValue = 0F 
rangeOccupate.RangePlacement = Syncfusion.Windows.Forms.Gauge.TickPlacement.OutSide 
rg.Ranges.Add(rangeOccupate) 
Dim rangeLibere As New Syncfusion.Windows.Forms.Gauge.Range() 
rangeLibere.Color = System.Drawing.Color.Green 
rangeLibere.Height = 10 
rangeLibere.EndValue = HOccupate + HLibere 
'Place the Green Range start value 
rangeLibere.StartValue = HOccupate 
rangeLibere.InRange = False 
rangeLibere.Name = "OreLibere" 
rangeLibere.RangePlacement = Syncfusion.Windows.Forms.Gauge.TickPlacement.OutSide 
rg.Ranges.Add(rangeLibere) 
 
Screenshot 
 
 
  
 
We have also prepared the sample for your reference. It can be downloaded from the below link, 
 
 
Please try this above solution that will meet your reported requirement and let us know if it is helpful. 
 
Regards, 
Mallika 



BS BEPPE SALVADERI January 22, 2018 12:28 PM UTC

Thank you!
It works perfectly.
Greetings.

Beppe




MK Mallika Kannan Syncfusion Team January 23, 2018 03:56 AM UTC

Hi Beppe 
 
Thanks for your update. 
 
We are glad to hear that we have helped you in this. Please let us know if you need any other assistance. 
 
Regards. 
Mallika  
 


Loader.
Up arrow icon