windowsforms-115794-controls-and-libraries-gauges-examples-how-to-create-a-gauge-from-scratch-runtime.md
This example demonstrates how to create the following circular gauge in code.
Drop the Gauge control (gaugeControl1) and two TrackBar controls (trackBar1, trackBar2) onto the Form.
There are two ways to add gauge UI elements.
Add... methods to display the pre-designed UI elements (e.g., CircularGauge.AddNeedle, LinearGauge.AddScale, DigitalGauge.AddBackgroundLayer, etc.). For instance, the AddScale method creates a scale with tick marks formatted to display integer values and displays the scale within the Gauge control.Note
Whichever approach you choose, wrap the code that sets up gauge UI elements in a pair of BeginUpdate \ EndUpdate methods to avoid excessive visual updates.
using System.Drawing;
using System.Windows.Forms;
using DevExpress.XtraGauges.Core.Model;
using DevExpress.XtraGauges.Win.Base;
using DevExpress.XtraGauges.Win.Gauges.Circular;
namespace GaugeFromSratch {
public partial class Form1 : Form {
public Form1() {
InitializeComponent();
gaugeControl1.Gauges.Add(CreateCircularGauge());
}
CircularGauge CreateCircularGauge() {
CircularGauge gauge = new CircularGauge();
gauge.BeginUpdate();
var scales = CreateScales(gauge);
var smallScale = scales[0];
var largeScale = scales[2];
CreateValueIndicators(gauge, smallScale, largeScale);
CreateScaleRanges(gauge, smallScale, largeScale);
CreateOrnamentalElements(gauge, largeScale);
trackBar1.Maximum = 40;
trackBar2.Maximum = 1040;
trackBar2.Minimum = 960;
trackBar1.ValueChanged += (s, e) => smallScale.Value = trackBar1.Value;
trackBar2.ValueChanged += (s, e) => largeScale.Value = trackBar2.Value;
gauge.EndUpdate();
return gauge;
}
ArcScaleComponent[] CreateScales(CircularGauge gauge) {
// Small Scale
var smallScale = new ArcScaleComponent();
smallScale.BeginUpdate();
smallScale.Name = "smallScale";
smallScale.StartAngle = -240f;
smallScale.EndAngle = 60f;
smallScale.Center = new DevExpress.XtraGauges.Core.Base.PointF2D(125, 125);
smallScale.RadiusX = 30F;
smallScale.RadiusY = 30F;
smallScale.MaxValue = 40F;
smallScale.MinValue = -40F;
smallScale.Value = trackBar1.Value;
smallScale.MajorTickCount = 9;
smallScale.MajorTickmark.FormatString = "{0:F0}";
smallScale.MajorTickmark.ShapeScale = new DevExpress.XtraGauges.Core.Base.FactorF2D(0.7F, 0.9F);
smallScale.MajorTickmark.ShapeType = DevExpress.XtraGauges.Core.Model.TickmarkShapeType.Circular_Style10_4;
smallScale.MajorTickmark.TextOffset = 15F;
smallScale.MajorTickmark.TextOrientation = DevExpress.XtraGauges.Core.Model.LabelOrientation.LeftToRight;
smallScale.AppearanceTickmarkText.Font = new System.Drawing.Font("Tahoma", 8F);
smallScale.AppearanceTickmarkText.TextBrush = new DevExpress.XtraGauges.Core.Drawing.SolidBrushObject(Color.Gray);
smallScale.MinorTickCount = 4;
smallScale.MinorTickmark.ShapeScale = new DevExpress.XtraGauges.Core.Base.FactorF2D(0.7F, 0.4F);
smallScale.MinorTickmark.ShapeType = DevExpress.XtraGauges.Core.Model.TickmarkShapeType.Circular_Style10_2;
smallScale.EndUpdate();
// Medium Scale
var mediumScale = new ArcScaleComponent();
mediumScale.BeginUpdate();
mediumScale.Name = "mediumScale";
mediumScale.StartAngle = -240f;
mediumScale.EndAngle = 60f;
mediumScale.Center = new DevExpress.XtraGauges.Core.Base.PointF2D(125, 125);
mediumScale.RadiusX = 80F;
mediumScale.RadiusY = 80F;
mediumScale.MinValue = 720F;
mediumScale.MaxValue = 780F;
mediumScale.MajorTickCount = 7;
mediumScale.MajorTickmark.FormatString = "{0:F0}";
mediumScale.MajorTickmark.ShapeScale = new DevExpress.XtraGauges.Core.Base.FactorF2D(0.7F, 1F);
mediumScale.MajorTickmark.ShapeType = DevExpress.XtraGauges.Core.Model.TickmarkShapeType.Circular_Style10_4;
mediumScale.MajorTickmark.TextOffset = 15F;
mediumScale.MajorTickmark.TextOrientation = DevExpress.XtraGauges.Core.Model.LabelOrientation.Tangent;
mediumScale.AppearanceTickmarkText.Font = new System.Drawing.Font("Tahoma", 8F);
mediumScale.AppearanceTickmarkText.TextBrush = new DevExpress.XtraGauges.Core.Drawing.SolidBrushObject(Color.Gray);
mediumScale.MinorTickCount = 4;
mediumScale.MinorTickmark.ShapeScale = new DevExpress.XtraGauges.Core.Base.FactorF2D(1.1F, 0.5F);
mediumScale.MinorTickmark.ShapeType = DevExpress.XtraGauges.Core.Model.TickmarkShapeType.Circular_Style10_2;
mediumScale.EndUpdate();
// Large Scale
var largeScale = new ArcScaleComponent();
largeScale.BeginUpdate();
largeScale.Name = "largeScale";
largeScale.Center = new DevExpress.XtraGauges.Core.Base.PointF2D(125, 125);
largeScale.RadiusX = 110F;
largeScale.StartAngle = -240f;
largeScale.EndAngle = 60f;
largeScale.RadiusY = 110F;
largeScale.MinValue = 960F;
largeScale.MaxValue = 1040F;
largeScale.Value = trackBar2.Value;
largeScale.MajorTickCount = 9;
largeScale.MajorTickmark.FormatString = "{0:F0}";
largeScale.MajorTickmark.ShapeScale = new DevExpress.XtraGauges.Core.Base.FactorF2D(0.7F, 1F);
largeScale.MajorTickmark.ShapeType = DevExpress.XtraGauges.Core.Model.TickmarkShapeType.Circular_Style10_4;
largeScale.MajorTickmark.TextOffset = 15F;
largeScale.MajorTickmark.TextOrientation = DevExpress.XtraGauges.Core.Model.LabelOrientation.Tangent;
largeScale.AppearanceTickmarkText.Font = new System.Drawing.Font("Tahoma", 8F);
largeScale.AppearanceTickmarkText.TextBrush = new DevExpress.XtraGauges.Core.Drawing.SolidBrushObject(Color.Gray);
largeScale.MinorTickCount = 4;
largeScale.MinorTickmark.ShapeScale = new DevExpress.XtraGauges.Core.Base.FactorF2D(1.1F, 0.5F);
largeScale.MinorTickmark.ShapeType = DevExpress.XtraGauges.Core.Model.TickmarkShapeType.Circular_Style10_2;
largeScale.EndUpdate();
var scales = new ArcScaleComponent[] { smallScale, mediumScale, largeScale };
gauge.Scales.AddRange(scales);
return scales;
}
void CreateValueIndicators(CircularGauge gauge, ArcScaleComponent smallScale, ArcScaleComponent largeScale) {
// A value indicator related to the inner scale
var needle = new ArcScaleNeedleComponent();
needle.BeginUpdate();
needle.Name = "needle";
needle.ArcScale = smallScale;
needle.StartOffset = 18F;
needle.EndOffset = 5F;
needle.ShapeType = DevExpress.XtraGauges.Core.Model.NeedleShapeType.CircularHalf_Style23;
needle.ZOrder = -50;
needle.EndUpdate();
// A value indicator related to the outer scale
var marker = new ArcScaleMarkerComponent();
marker.BeginUpdate();
marker.Name = "marker";
marker.ArcScale = largeScale;
marker.ShapeOffset = 27F;
marker.Shader = new DevExpress.XtraGauges.Core.Drawing.StyleShader() { StyleColor1 = Color.SlateBlue, StyleColor2 = Color.CornflowerBlue };
marker.ShapeScale = new DevExpress.XtraGauges.Core.Base.FactorF2D(0.8F, 1F);
marker.ZOrder = -100;
marker.EndUpdate();
gauge.Needles.Add(needle);
gauge.Markers.Add(marker);
}
void CreateScaleRanges(CircularGauge gauge, ArcScaleComponent smallScale, ArcScaleComponent largeScale) {
// Outer Green Range
ArcScaleRange outerGreenRange = new ArcScaleRange();
outerGreenRange.AppearanceRange.ContentBrush = new DevExpress.XtraGauges.Core.Drawing.SolidBrushObject(Color.SeaGreen);
outerGreenRange.StartThickness = 4F;
outerGreenRange.EndThickness = 4F;
outerGreenRange.StartValue = 970F;
outerGreenRange.EndValue = 991F;
outerGreenRange.ShapeOffset = 33F;
// Outer Yellow Range
ArcScaleRange outerYellowRange = new ArcScaleRange();
outerYellowRange.AppearanceRange.ContentBrush = new DevExpress.XtraGauges.Core.Drawing.SolidBrushObject(Color.Khaki);
outerYellowRange.StartThickness = 4F;
outerYellowRange.EndThickness = 4F;
outerYellowRange.StartValue = 991F;
outerYellowRange.EndValue = 1009F;
outerYellowRange.ShapeOffset = 33F;
// Outer Red Range
ArcScaleRange outerRedRange = new ArcScaleRange();
outerRedRange.AppearanceRange.ContentBrush = new DevExpress.XtraGauges.Core.Drawing.SolidBrushObject(Color.LightCoral);
outerRedRange.StartValue = 1009F;
outerRedRange.EndValue = 1030F;
outerRedRange.StartThickness = 4F;
outerRedRange.EndThickness = 4F;
outerRedRange.ShapeOffset = 33F;
// Inner Blue Range
ArcScaleRange innerBlueRange = new ArcScaleRange();
innerBlueRange.AppearanceRange.ContentBrush = new DevExpress.XtraGauges.Core.Drawing.SolidBrushObject(Color.CornflowerBlue);
innerBlueRange.StartValue = -40F;
innerBlueRange.EndValue = 0F;
innerBlueRange.StartThickness = 4F;
innerBlueRange.EndThickness = 4F;
innerBlueRange.ShapeOffset = 0F;
// Inner Yellow Range
ArcScaleRange innerYellowRange = new ArcScaleRange();
innerYellowRange.AppearanceRange.ContentBrush = new DevExpress.XtraGauges.Core.Drawing.SolidBrushObject(Color.Khaki);
innerYellowRange.StartValue = 0F;
innerYellowRange.EndValue = 40F;
innerYellowRange.StartThickness = 4F;
innerYellowRange.EndThickness = 4F;
innerYellowRange.ShapeOffset = 0F;
// Adds the ranges to the scales
smallScale.Ranges.AddRange(new ArcScaleRange[] { innerBlueRange, innerYellowRange });
largeScale.Ranges.AddRange(new ArcScaleRange[] { outerGreenRange, outerYellowRange, outerRedRange });
}
void CreateOrnamentalElements(CircularGauge gauge, ArcScaleComponent largeScale) {
ArcScaleBackgroundLayerComponent backgroundLayer = new ArcScaleBackgroundLayerComponent();
backgroundLayer.BeginUpdate();
backgroundLayer.Name = "backgroundLayer";
backgroundLayer.ShapeType = DevExpress.XtraGauges.Core.Model.BackgroundLayerShapeType.CircularFull_Style23;
backgroundLayer.ArcScale = largeScale;
backgroundLayer.Size = new SizeF(350F, 350F);
backgroundLayer.ZOrder = 1000;
backgroundLayer.EndUpdate();
// Custom labels
LabelComponent mmLabel = new LabelComponent();
mmLabel.BeginUpdate();
mmLabel.Name = "mmLabel";
mmLabel.Text = "mm";
mmLabel.Position = new DevExpress.XtraGauges.Core.Base.PointF2D(128, 210);
mmLabel.AppearanceText.TextBrush = new DevExpress.XtraGauges.Core.Drawing.SolidBrushObject(Color.Gray);
mmLabel.EndUpdate();
LabelComponent mbLabel = new LabelComponent();
mbLabel.BeginUpdate();
mbLabel.Name = "mbLabel";
mbLabel.Text = "millibars";
mbLabel.Position = new DevExpress.XtraGauges.Core.Base.PointF2D(128, 238);
mbLabel.AppearanceText.TextBrush = new DevExpress.XtraGauges.Core.Drawing.SolidBrushObject(Color.Gray);
mbLabel.EndUpdate();
// Adds the background and labels to the Gauge control
gauge.BackgroundLayers.Add(backgroundLayer);
gauge.Labels.AddRange(new LabelComponent[] { mmLabel, mbLabel });
}
}
}
Imports System.Drawing
Imports System.Windows.Forms
Imports DevExpress.XtraGauges.Core.Model
Imports DevExpress.XtraGauges.Win.Base
Imports DevExpress.XtraGauges.Win.Gauges.Circular
Namespace GaugeFromSratch
Partial Public Class Form1
Inherits Form
Public Sub New()
InitializeComponent()
gaugeControl1.Gauges.Add(CreateCircularGauge())
End Sub
Private Function CreateCircularGauge() As CircularGauge
Dim gauge As New CircularGauge()
gauge.BeginUpdate()
Dim scales = CreateScales(gauge)
Dim smallScale = scales(0)
Dim largeScale = scales(2)
CreateValueIndicators(gauge, smallScale, largeScale)
CreateScaleRanges(gauge, smallScale, largeScale)
CreateOrnamentalElements(gauge, largeScale)
trackBar1.Maximum = 40
trackBar2.Maximum = 1040
trackBar2.Minimum = 960
AddHandler trackBar1.ValueChanged, Sub(s, e) smallScale.Value = trackBar1.Value
AddHandler trackBar2.ValueChanged, Sub(s, e) largeScale.Value = trackBar2.Value
gauge.EndUpdate()
Return gauge
End Function
Private Function CreateScales(ByVal gauge As CircularGauge) As ArcScaleComponent()
' Small Scale
Dim smallScale = New ArcScaleComponent()
smallScale.BeginUpdate()
smallScale.Name = "smallScale"
smallScale.StartAngle = -240F
smallScale.EndAngle = 60F
smallScale.Center = New DevExpress.XtraGauges.Core.Base.PointF2D(125, 125)
smallScale.RadiusX = 30F
smallScale.RadiusY = 30F
smallScale.MaxValue = 40F
smallScale.MinValue = -40F
smallScale.Value = trackBar1.Value
smallScale.MajorTickCount = 9
smallScale.MajorTickmark.FormatString = "{0:F0}"
smallScale.MajorTickmark.ShapeScale = New DevExpress.XtraGauges.Core.Base.FactorF2D(0.7F, 0.9F)
smallScale.MajorTickmark.ShapeType = DevExpress.XtraGauges.Core.Model.TickmarkShapeType.Circular_Style10_4
smallScale.MajorTickmark.TextOffset = 15F
smallScale.MajorTickmark.TextOrientation = DevExpress.XtraGauges.Core.Model.LabelOrientation.LeftToRight
smallScale.AppearanceTickmarkText.Font = New System.Drawing.Font("Tahoma", 8F)
smallScale.AppearanceTickmarkText.TextBrush = New DevExpress.XtraGauges.Core.Drawing.SolidBrushObject(Color.Gray)
smallScale.MinorTickCount = 4
smallScale.MinorTickmark.ShapeScale = New DevExpress.XtraGauges.Core.Base.FactorF2D(0.7F, 0.4F)
smallScale.MinorTickmark.ShapeType = DevExpress.XtraGauges.Core.Model.TickmarkShapeType.Circular_Style10_2
smallScale.EndUpdate()
' Medium Scale
Dim mediumScale = New ArcScaleComponent()
mediumScale.BeginUpdate()
mediumScale.Name = "mediumScale"
mediumScale.StartAngle = -240F
mediumScale.EndAngle = 60F
mediumScale.Center = New DevExpress.XtraGauges.Core.Base.PointF2D(125, 125)
mediumScale.RadiusX = 80F
mediumScale.RadiusY = 80F
mediumScale.MinValue = 720F
mediumScale.MaxValue = 780F
mediumScale.MajorTickCount = 7
mediumScale.MajorTickmark.FormatString = "{0:F0}"
mediumScale.MajorTickmark.ShapeScale = New DevExpress.XtraGauges.Core.Base.FactorF2D(0.7F, 1F)
mediumScale.MajorTickmark.ShapeType = DevExpress.XtraGauges.Core.Model.TickmarkShapeType.Circular_Style10_4
mediumScale.MajorTickmark.TextOffset = 15F
mediumScale.MajorTickmark.TextOrientation = DevExpress.XtraGauges.Core.Model.LabelOrientation.Tangent
mediumScale.AppearanceTickmarkText.Font = New System.Drawing.Font("Tahoma", 8F)
mediumScale.AppearanceTickmarkText.TextBrush = New DevExpress.XtraGauges.Core.Drawing.SolidBrushObject(Color.Gray)
mediumScale.MinorTickCount = 4
mediumScale.MinorTickmark.ShapeScale = New DevExpress.XtraGauges.Core.Base.FactorF2D(1.1F, 0.5F)
mediumScale.MinorTickmark.ShapeType = DevExpress.XtraGauges.Core.Model.TickmarkShapeType.Circular_Style10_2
mediumScale.EndUpdate()
' Large Scale
Dim largeScale = New ArcScaleComponent()
largeScale.BeginUpdate()
largeScale.Name = "largeScale"
largeScale.Center = New DevExpress.XtraGauges.Core.Base.PointF2D(125, 125)
largeScale.RadiusX = 110F
largeScale.StartAngle = -240F
largeScale.EndAngle = 60F
largeScale.RadiusY = 110F
largeScale.MinValue = 960F
largeScale.MaxValue = 1040F
largeScale.Value = trackBar2.Value
largeScale.MajorTickCount = 9
largeScale.MajorTickmark.FormatString = "{0:F0}"
largeScale.MajorTickmark.ShapeScale = New DevExpress.XtraGauges.Core.Base.FactorF2D(0.7F, 1F)
largeScale.MajorTickmark.ShapeType = DevExpress.XtraGauges.Core.Model.TickmarkShapeType.Circular_Style10_4
largeScale.MajorTickmark.TextOffset = 15F
largeScale.MajorTickmark.TextOrientation = DevExpress.XtraGauges.Core.Model.LabelOrientation.Tangent
largeScale.AppearanceTickmarkText.Font = New System.Drawing.Font("Tahoma", 8F)
largeScale.AppearanceTickmarkText.TextBrush = New DevExpress.XtraGauges.Core.Drawing.SolidBrushObject(Color.Gray)
largeScale.MinorTickCount = 4
largeScale.MinorTickmark.ShapeScale = New DevExpress.XtraGauges.Core.Base.FactorF2D(1.1F, 0.5F)
largeScale.MinorTickmark.ShapeType = DevExpress.XtraGauges.Core.Model.TickmarkShapeType.Circular_Style10_2
largeScale.EndUpdate()
Dim scales = New ArcScaleComponent() { smallScale, mediumScale, largeScale }
gauge.Scales.AddRange(scales)
Return scales
End Function
Private Sub CreateValueIndicators(ByVal gauge As CircularGauge, ByVal smallScale As ArcScaleComponent, ByVal largeScale As ArcScaleComponent)
' A value indicator related to the inner scale
Dim needle = New ArcScaleNeedleComponent()
needle.BeginUpdate()
needle.Name = "needle"
needle.ArcScale = smallScale
needle.StartOffset = 18F
needle.EndOffset = 5F
needle.ShapeType = DevExpress.XtraGauges.Core.Model.NeedleShapeType.CircularHalf_Style23
needle.ZOrder = -50
needle.EndUpdate()
' A value indicator related to the outer scale
Dim marker = New ArcScaleMarkerComponent()
marker.BeginUpdate()
marker.Name = "marker"
marker.ArcScale = largeScale
marker.ShapeOffset = 27F
marker.Shader = New DevExpress.XtraGauges.Core.Drawing.StyleShader() With {.StyleColor1 = Color.SlateBlue, .StyleColor2 = Color.CornflowerBlue}
marker.ShapeScale = New DevExpress.XtraGauges.Core.Base.FactorF2D(0.8F, 1F)
marker.ZOrder = -100
marker.EndUpdate()
gauge.Needles.Add(needle)
gauge.Markers.Add(marker)
End Sub
Private Sub CreateScaleRanges(ByVal gauge As CircularGauge, ByVal smallScale As ArcScaleComponent, ByVal largeScale As ArcScaleComponent)
' Outer Green Range
Dim outerGreenRange As New ArcScaleRange()
outerGreenRange.AppearanceRange.ContentBrush = New DevExpress.XtraGauges.Core.Drawing.SolidBrushObject(Color.SeaGreen)
outerGreenRange.StartThickness = 4F
outerGreenRange.EndThickness = 4F
outerGreenRange.StartValue = 970F
outerGreenRange.EndValue = 991F
outerGreenRange.ShapeOffset = 33F
' Outer Yellow Range
Dim outerYellowRange As New ArcScaleRange()
outerYellowRange.AppearanceRange.ContentBrush = New DevExpress.XtraGauges.Core.Drawing.SolidBrushObject(Color.Khaki)
outerYellowRange.StartThickness = 4F
outerYellowRange.EndThickness = 4F
outerYellowRange.StartValue = 991F
outerYellowRange.EndValue = 1009F
outerYellowRange.ShapeOffset = 33F
' Outer Red Range
Dim outerRedRange As New ArcScaleRange()
outerRedRange.AppearanceRange.ContentBrush = New DevExpress.XtraGauges.Core.Drawing.SolidBrushObject(Color.LightCoral)
outerRedRange.StartValue = 1009F
outerRedRange.EndValue = 1030F
outerRedRange.StartThickness = 4F
outerRedRange.EndThickness = 4F
outerRedRange.ShapeOffset = 33F
' Inner Blue Range
Dim innerBlueRange As New ArcScaleRange()
innerBlueRange.AppearanceRange.ContentBrush = New DevExpress.XtraGauges.Core.Drawing.SolidBrushObject(Color.CornflowerBlue)
innerBlueRange.StartValue = -40F
innerBlueRange.EndValue = 0F
innerBlueRange.StartThickness = 4F
innerBlueRange.EndThickness = 4F
innerBlueRange.ShapeOffset = 0F
' Inner Yellow Range
Dim innerYellowRange As New ArcScaleRange()
innerYellowRange.AppearanceRange.ContentBrush = New DevExpress.XtraGauges.Core.Drawing.SolidBrushObject(Color.Khaki)
innerYellowRange.StartValue = 0F
innerYellowRange.EndValue = 40F
innerYellowRange.StartThickness = 4F
innerYellowRange.EndThickness = 4F
innerYellowRange.ShapeOffset = 0F
' Adds the ranges to the scales
smallScale.Ranges.AddRange(New ArcScaleRange() { innerBlueRange, innerYellowRange })
largeScale.Ranges.AddRange(New ArcScaleRange() { outerGreenRange, outerYellowRange, outerRedRange })
End Sub
Private Sub CreateOrnamentalElements(ByVal gauge As CircularGauge, ByVal largeScale As ArcScaleComponent)
Dim backgroundLayer As New ArcScaleBackgroundLayerComponent()
backgroundLayer.BeginUpdate()
backgroundLayer.Name = "backgroundLayer"
backgroundLayer.ShapeType = DevExpress.XtraGauges.Core.Model.BackgroundLayerShapeType.CircularFull_Style23
backgroundLayer.ArcScale = largeScale
backgroundLayer.Size = New SizeF(350F, 350F)
backgroundLayer.ZOrder = 1000
backgroundLayer.EndUpdate()
' Custom Labels
Dim mmLabel As New LabelComponent()
mmLabel.BeginUpdate()
mmLabel.Name = "mmLabel"
mmLabel.Text = "mm"
mmLabel.Position = New DevExpress.XtraGauges.Core.Base.PointF2D(128, 210)
mmLabel.AppearanceText.TextBrush = New DevExpress.XtraGauges.Core.Drawing.SolidBrushObject(Color.Gray)
mmLabel.EndUpdate()
Dim mbLabel As New LabelComponent()
mbLabel.BeginUpdate()
mbLabel.Name = "mbLabel"
mbLabel.Text = "millibars"
mbLabel.Position = New DevExpress.XtraGauges.Core.Base.PointF2D(128, 238)
mbLabel.AppearanceText.TextBrush = New DevExpress.XtraGauges.Core.Drawing.SolidBrushObject(Color.Gray)
mbLabel.EndUpdate()
' Adds the background and labels to the Gauge control
gauge.BackgroundLayers.Add(backgroundLayer)
gauge.Labels.AddRange(New LabelComponent() { mmLabel, mbLabel })
End Sub
End Class
End Namespace
See Also