ArcObjects Library Reference  

SymbolForm

About the Retrieve a color ramp from the SymbologyControl Sample

[C#]

SymbolForm.cs

using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;

using ESRI.ArcGIS.Geodatabase;
using ESRI.ArcGIS.Controls;
using ESRI.ArcGIS.Carto;
using ESRI.ArcGIS.Display;
using ESRI.ArcGIS.esriSystem;

namespace ColorRamps
{

	public class Form2 : System.Windows.Forms.Form
	{
		private System.Windows.Forms.ComboBox comboBox1;
		private System.Windows.Forms.GroupBox groupBox1;
		private System.Windows.Forms.GroupBox groupBox2;
		private System.Windows.Forms.TextBox textBox1;
		private System.Windows.Forms.TextBox textBox2;
		private System.Windows.Forms.TextBox textBox3;
		private System.Windows.Forms.Label label1;
		private System.Windows.Forms.GroupBox groupBox3;
		private System.Windows.Forms.Button button2;
		private System.Windows.Forms.Button button3;
		private System.ComponentModel.Container components = null;
		private System.Windows.Forms.Label label2;
		private System.Windows.Forms.Label label3;
		private System.Windows.Forms.Label label4;
		private ESRI.ArcGIS.Controls.AxSymbologyControl axSymbologyControl1;
    
		private IClassBreaksRenderer m_classBreaksRenderer;
		private IStyleGalleryItem m_styleGalleryItem;
		private IFeatureLayer m_featureLayer;

		public Form2()
		{
			InitializeComponent();
		}


		protected override void Dispose( bool disposing )
		{
			if( disposing )
			{
				if(components != null)
				{
					components.Dispose();
				}
			}
			base.Dispose( disposing );
		}

		#region Windows Form Designer generated code
		/// <summary>
		/// Required method for Designer support - do not modify
		/// the contents of this method with the code editor.
		/// </summary>
		private void InitializeComponent()
		{
			System.Resources.ResourceManager resources = new System.Resources.ResourceManager(typeof(Form2));
			this.comboBox1 = new System.Windows.Forms.ComboBox();
			this.groupBox1 = new System.Windows.Forms.GroupBox();
			this.label1 = new System.Windows.Forms.Label();
			this.groupBox2 = new System.Windows.Forms.GroupBox();
			this.label4 = new System.Windows.Forms.Label();
			this.label3 = new System.Windows.Forms.Label();
			this.label2 = new System.Windows.Forms.Label();
			this.textBox3 = new System.Windows.Forms.TextBox();
			this.textBox2 = new System.Windows.Forms.TextBox();
			this.textBox1 = new System.Windows.Forms.TextBox();
			this.groupBox3 = new System.Windows.Forms.GroupBox();
			this.axSymbologyControl1 = new ESRI.ArcGIS.Controls.AxSymbologyControl();
			this.button2 = new System.Windows.Forms.Button();
			this.button3 = new System.Windows.Forms.Button();
			this.groupBox1.SuspendLayout();
			this.groupBox2.SuspendLayout();
			this.groupBox3.SuspendLayout();
			((System.ComponentModel.ISupportInitialize)(this.axSymbologyControl1)).BeginInit();
			this.SuspendLayout();
			// 
			// comboBox1
			// 
			this.comboBox1.Location = new System.Drawing.Point(16, 56);
			this.comboBox1.Name = "comboBox1";
			this.comboBox1.Size = new System.Drawing.Size(168, 21);
			this.comboBox1.TabIndex = 0;
			this.comboBox1.Text = "comboBox1";
			this.comboBox1.SelectedIndexChanged += new System.EventHandler(this.comboBox1_SelectedIndexChanged);
			// 
			// groupBox1
			// 
			this.groupBox1.Controls.Add(this.label1);
			this.groupBox1.Controls.Add(this.comboBox1);
			this.groupBox1.Location = new System.Drawing.Point(304, 24);
			this.groupBox1.Name = "groupBox1";
			this.groupBox1.Size = new System.Drawing.Size(232, 100);
			this.groupBox1.TabIndex = 1;
			this.groupBox1.TabStop = false;
			this.groupBox1.Text = "FeatureLayer";
			// 
			// label1
			// 
			this.label1.Location = new System.Drawing.Point(16, 32);
			this.label1.Name = "label1";
			this.label1.TabIndex = 1;
			this.label1.Text = "Numeric Fields:";
			// 
			// groupBox2
			// 
			this.groupBox2.Controls.Add(this.label4);
			this.groupBox2.Controls.Add(this.label3);
			this.groupBox2.Controls.Add(this.label2);
			this.groupBox2.Controls.Add(this.textBox3);
			this.groupBox2.Controls.Add(this.textBox2);
			this.groupBox2.Controls.Add(this.textBox1);
			this.groupBox2.Location = new System.Drawing.Point(304, 128);
			this.groupBox2.Name = "groupBox2";
			this.groupBox2.Size = new System.Drawing.Size(232, 128);
			this.groupBox2.TabIndex = 1;
			this.groupBox2.TabStop = false;
			this.groupBox2.Text = "Break";
			// 
			// label4
			// 
			this.label4.Location = new System.Drawing.Point(8, 96);
			this.label4.Name = "label4";
			this.label4.TabIndex = 7;
			this.label4.Text = "Max Value:";
			// 
			// label3
			// 
			this.label3.Location = new System.Drawing.Point(8, 64);
			this.label3.Name = "label3";
			this.label3.TabIndex = 6;
			this.label3.Text = "Min Value:";
			// 
			// label2
			// 
			this.label2.Location = new System.Drawing.Point(8, 32);
			this.label2.Name = "label2";
			this.label2.Size = new System.Drawing.Size(104, 23);
			this.label2.TabIndex = 5;
			this.label2.Text = "Number of Classes:";
			// 
			// textBox3
			// 
			this.textBox3.Enabled = false;
			this.textBox3.Location = new System.Drawing.Point(120, 96);
			this.textBox3.Name = "textBox3";
			this.textBox3.TabIndex = 4;
			this.textBox3.Text = "";
			// 
			// textBox2
			// 
			this.textBox2.Enabled = false;
			this.textBox2.Location = new System.Drawing.Point(120, 64);
			this.textBox2.Name = "textBox2";
			this.textBox2.TabIndex = 3;
			this.textBox2.Text = "";
			// 
			// textBox1
			// 
			this.textBox1.Location = new System.Drawing.Point(120, 32);
			this.textBox1.Name = "textBox1";
			this.textBox1.TabIndex = 2;
			this.textBox1.Text = "";
			this.textBox1.Leave += new System.EventHandler(this.textBox1_Leave);
			// 
			// groupBox3
			// 
			this.groupBox3.Controls.Add(this.axSymbologyControl1);
			this.groupBox3.Location = new System.Drawing.Point(8, 8);
			this.groupBox3.Name = "groupBox3";
			this.groupBox3.Size = new System.Drawing.Size(288, 288);
			this.groupBox3.TabIndex = 3;
			this.groupBox3.TabStop = false;
			this.groupBox3.Text = "Symbology";
			// 
			// axSymbologyControl1
			// 
			this.axSymbologyControl1.ContainingControl = this;
			this.axSymbologyControl1.Location = new System.Drawing.Point(8, 16);
			this.axSymbologyControl1.Name = "axSymbologyControl1";
			this.axSymbologyControl1.OcxState = ((System.Windows.Forms.AxHost.State)(resources.GetObject("axSymbologyControl1.OcxState")));
			this.axSymbologyControl1.Size = new System.Drawing.Size(272, 265);
			this.axSymbologyControl1.TabIndex = 0;
			this.axSymbologyControl1.OnItemSelected += new ESRI.ArcGIS.Controls.ISymbologyControlEvents_Ax_OnItemSelectedEventHandler(this.axSymbologyControl1_OnItemSelected);
			// 
			// button2
			// 
			this.button2.Location = new System.Drawing.Point(384, 264);
			this.button2.Name = "button2";
			this.button2.TabIndex = 3;
			this.button2.Text = "OK";
			this.button2.Click += new System.EventHandler(this.button2_Click);
			// 
			// button3
			// 
			this.button3.Location = new System.Drawing.Point(464, 264);
			this.button3.Name = "button3";
			this.button3.TabIndex = 4;
			this.button3.Text = "Cancel";
			this.button3.Click += new System.EventHandler(this.button3_Click);
			// 
			// Form2
			// 
			this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
			this.ClientSize = new System.Drawing.Size(546, 304);
			this.Controls.Add(this.button3);
			this.Controls.Add(this.groupBox3);
			this.Controls.Add(this.groupBox1);
			this.Controls.Add(this.groupBox2);
			this.Controls.Add(this.button2);
			this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;
			this.Name = "Form2";
			this.Text = "Class Breaks Renderer";
			this.Load += new System.EventHandler(this.Form3_Load);
			this.groupBox1.ResumeLayout(false);
			this.groupBox2.ResumeLayout(false);
			this.groupBox3.ResumeLayout(false);
			((System.ComponentModel.ISupportInitialize)(this.axSymbologyControl1)).EndInit();
			this.ResumeLayout(false);

		}
		#endregion

		private void Form3_Load(object sender, System.EventArgs e)
		{
    
			//Get the ArcGIS install location
            string sInstall = ESRI.ArcGIS.RuntimeManager.ActiveRuntime.Path;

			//Load the ESRI.ServerStyle file into the SymbologyControl
			axSymbologyControl1.LoadStyleFile(sInstall + "\\Styles\\ESRI.ServerStyle");

			//Set the style class
			axSymbologyControl1.StyleClass = esriSymbologyStyleClass.esriStyleClassColorRamps;

			//Select the color ramp item
			axSymbologyControl1.GetStyleClass(axSymbologyControl1.StyleClass).SelectItem(0);
		}

   
		private void button2_Click(object sender, System.EventArgs e)
		{
			//Create a new ClassBreaksRenderer and set properties
			m_classBreaksRenderer = new ClassBreaksRenderer();
			m_classBreaksRenderer.Field = comboBox1.SelectedItem.ToString();
			m_classBreaksRenderer.BreakCount = Convert.ToInt32(textBox1.Text);
			m_classBreaksRenderer.MinimumBreak = Convert.ToDouble(textBox2.Text);

			//Calculate the class interval by a simple mean value
			double interval = (Convert.ToDouble(textBox3.Text) - m_classBreaksRenderer.MinimumBreak) / m_classBreaksRenderer.BreakCount;

			//Get the color ramp
			IColorRamp colorRamp = (IColorRamp) m_styleGalleryItem.Item;
			//Set the size of the color ramp and recreate it
			colorRamp.Size = Convert.ToInt32(textBox1.Text);
			bool createRamp;
			colorRamp.CreateRamp(out createRamp);

			//Get the enumeration of colors from the color ramp
			IEnumColors enumColors = colorRamp.Colors;
			enumColors.Reset();
			double currentBreak = m_classBreaksRenderer.MinimumBreak;

			ISimpleFillSymbol simpleFillSymbol;
			//Loop through each class break
			for (int i = 0; i <= m_classBreaksRenderer.BreakCount-1; i++)
			{
				//Set class break
				m_classBreaksRenderer.set_Break(i,currentBreak);
				//Create simple fill symbol and set color
				simpleFillSymbol = new SimpleFillSymbolClass();
				simpleFillSymbol.Color = enumColors.Next();
				//Add symbol to renderer
				m_classBreaksRenderer.set_Symbol(i, (ISymbol)simpleFillSymbol);
				currentBreak += interval;
			}

			//Hide the form
			this.Hide();
		}


		private void button3_Click(object sender, System.EventArgs e)
		{
			this.Hide();
		}

		
		private void textBox1_Leave(object sender, System.EventArgs e)
		{
			IColorRamp colorRamp = (IColorRamp) m_styleGalleryItem.Item;

			//Ensure is numeric
			if (IsInteger(textBox1.Text) == false) 
			{
				System.Windows.Forms.MessageBox.Show("Must be a numeric!");
				textBox1.Text = "10";
				return;
			}
			else if (Convert.ToInt32(textBox1.Text) <= 0)
			{
				//Ensure is not zero
				System.Windows.Forms.MessageBox.Show("Must be greater than 0!");
				textBox1.Text = "10";
				return;
			}
			else if (Convert.ToInt32(textBox1.Text) > colorRamp.Size)
			{
				//Ensure does not exceed number of colors in color ramp
				System.Windows.Forms.MessageBox.Show("Must be less than " + colorRamp.Size + "!");
				textBox1.Text = "10";
				return;
			}

		}

		private void comboBox1_SelectedIndexChanged(object sender, System.EventArgs e)
		{
			//Find the selected field in the feature layer
			IFeatureClass featureClass = m_featureLayer.FeatureClass;
			IField field = featureClass.Fields.get_Field(featureClass.FindField(comboBox1.Text));

			//Get a feature cursor
			ICursor cursor = (ICursor) m_featureLayer.Search(null, false);

			//Create a DataStatistics object and initialize properties
			IDataStatistics dataStatistics = new DataStatisticsClass();
			dataStatistics.Field = field.Name;
			dataStatistics.Cursor = cursor;

			//Get the result statistics
			IStatisticsResults statisticsResults = dataStatistics.Statistics;

			//Set the values min and max values
			textBox2.Text = statisticsResults.Minimum.ToString();
			textBox3.Text = statisticsResults.Maximum.ToString();
			textBox1.Text = "10";
		}	

		public IClassBreaksRenderer GetClassBreaksRenderer(IFeatureLayer featureLayer)
		{		
			m_featureLayer = featureLayer;

			comboBox1.Items.Clear();

			//Add numeric fields names to the combobox
			IFields fields = m_featureLayer.FeatureClass.Fields;
			for (int i = 0; i<=fields.FieldCount-1; i++)
			{
				if ((fields.get_Field(i).Type == esriFieldType.esriFieldTypeDouble) ||
					(fields.get_Field(i).Type == esriFieldType.esriFieldTypeInteger) ||
					(fields.get_Field(i).Type == esriFieldType.esriFieldTypeSingle) ||
					(fields.get_Field(i).Type == esriFieldType.esriFieldTypeSmallInteger) )
				{
					comboBox1.Items.Add(fields.get_Field(i).Name);
				}
			}
			comboBox1.SelectedIndex = 0;

			//Show form modally and wait for user input
			this.ShowDialog();

			//Return the ClassBreaksRenderer
			return m_classBreaksRenderer;
		}

		private void axSymbologyControl1_OnItemSelected(object sender, ESRI.ArcGIS.Controls.ISymbologyControlEvents_OnItemSelectedEvent e)
		{
			//Get the selected item
			m_styleGalleryItem = (IStyleGalleryItem) e.styleGalleryItem;
		}

		public bool IsInteger(string s)
		{
			try 
			{
				Int32.Parse(s);
			}
			catch 
			{
				return false;
			}
			return true;
		}


	}
}

[Visual Basic .NET]

SymbolForm.vb

Imports ESRI.ArcGIS.Geodatabase
Imports ESRI.ArcGIS.Controls
Imports ESRI.ArcGIS.Carto
Imports ESRI.ArcGIS.Display
Imports ESRI.ArcGIS.esriSystem

Public Class Form2
    Inherits System.Windows.Forms.Form

    Private m_classBreaksRenderer As IClassBreaksRenderer
    Private m_styleGalleryItem As IStyleGalleryItem
    Private m_featureLayer As IFeatureLayer

#Region " Windows Form Designer generated code "

    Public Sub New()
        MyBase.New()

        'This call is required by the Windows Form Designer.
        InitializeComponent()

        'Add any initialization after the InitializeComponent() call

    End Sub

    'Form overrides dispose to clean up the component list.
    Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
        If disposing Then
            If Not (components Is Nothing) Then
                components.Dispose()
            End If
        End If
        MyBase.Dispose(disposing)
    End Sub

    'Required by the Windows Form Designer
    Private components As System.ComponentModel.IContainer

    'NOTE: The following procedure is required by the Windows Form Designer
    'It can be modified using the Windows Form Designer.  
    'Do not modify it using the code editor.
    Friend WithEvents GroupBox1 As System.Windows.Forms.GroupBox
    Friend WithEvents GroupBox2 As System.Windows.Forms.GroupBox
    Friend WithEvents GroupBox3 As System.Windows.Forms.GroupBox
    Friend WithEvents Label1 As System.Windows.Forms.Label
    Friend WithEvents ComboBox1 As System.Windows.Forms.ComboBox
    Friend WithEvents Label2 As System.Windows.Forms.Label
    Friend WithEvents Label3 As System.Windows.Forms.Label
    Friend WithEvents Label4 As System.Windows.Forms.Label
    Friend WithEvents TextBox1 As System.Windows.Forms.TextBox
    Friend WithEvents TextBox2 As System.Windows.Forms.TextBox
    Friend WithEvents TextBox3 As System.Windows.Forms.TextBox
    Friend WithEvents Button2 As System.Windows.Forms.Button
    Friend WithEvents Button3 As System.Windows.Forms.Button
    Friend WithEvents AxSymbologyControl1 As ESRI.ArcGIS.Controls.AxSymbologyControl
    <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
        Dim resources As System.Resources.ResourceManager = New System.Resources.ResourceManager(GetType(Form2))
        Me.GroupBox1 = New System.Windows.Forms.GroupBox
        Me.ComboBox1 = New System.Windows.Forms.ComboBox
        Me.Label1 = New System.Windows.Forms.Label
        Me.GroupBox2 = New System.Windows.Forms.GroupBox
        Me.AxSymbologyControl1 = New ESRI.ArcGIS.Controls.AxSymbologyControl
        Me.GroupBox3 = New System.Windows.Forms.GroupBox
        Me.TextBox3 = New System.Windows.Forms.TextBox
        Me.TextBox2 = New System.Windows.Forms.TextBox
        Me.TextBox1 = New System.Windows.Forms.TextBox
        Me.Label4 = New System.Windows.Forms.Label
        Me.Label3 = New System.Windows.Forms.Label
        Me.Label2 = New System.Windows.Forms.Label
        Me.Button2 = New System.Windows.Forms.Button
        Me.Button3 = New System.Windows.Forms.Button
        Me.GroupBox1.SuspendLayout()
        Me.GroupBox2.SuspendLayout()
        CType(Me.AxSymbologyControl1, System.ComponentModel.ISupportInitialize).BeginInit()
        Me.GroupBox3.SuspendLayout()
        Me.SuspendLayout()
        '
        'GroupBox1
        '
        Me.GroupBox1.Controls.Add(Me.ComboBox1)
        Me.GroupBox1.Controls.Add(Me.Label1)
        Me.GroupBox1.Location = New System.Drawing.Point(320, 16)
        Me.GroupBox1.Name = "GroupBox1"
        Me.GroupBox1.Size = New System.Drawing.Size(248, 120)
        Me.GroupBox1.TabIndex = 0
        Me.GroupBox1.TabStop = False
        Me.GroupBox1.Text = "Feature Layer"
        '
        'ComboBox1
        '
        Me.ComboBox1.Location = New System.Drawing.Point(16, 56)
        Me.ComboBox1.Name = "ComboBox1"
        Me.ComboBox1.Size = New System.Drawing.Size(216, 21)
        Me.ComboBox1.TabIndex = 1
        Me.ComboBox1.Text = "ComboBox1"
        '
        'Label1
        '
        Me.Label1.Location = New System.Drawing.Point(16, 32)
        Me.Label1.Name = "Label1"
        Me.Label1.TabIndex = 0
        Me.Label1.Text = "Numeric Fields:"
        '
        'GroupBox2
        '
        Me.GroupBox2.Controls.Add(Me.AxSymbologyControl1)
        Me.GroupBox2.Location = New System.Drawing.Point(16, 8)
        Me.GroupBox2.Name = "GroupBox2"
        Me.GroupBox2.Size = New System.Drawing.Size(296, 320)
        Me.GroupBox2.TabIndex = 0
        Me.GroupBox2.TabStop = False
        Me.GroupBox2.Text = "Symbology"
        '
        'AxSymbologyControl1
        '
        Me.AxSymbologyControl1.ContainingControl = Me
        Me.AxSymbologyControl1.Location = New System.Drawing.Point(8, 16)
        Me.AxSymbologyControl1.Name = "AxSymbologyControl1"
        Me.AxSymbologyControl1.OcxState = CType(resources.GetObject("AxSymbologyControl1.OcxState"), System.Windows.Forms.AxHost.State)
        Me.AxSymbologyControl1.Size = New System.Drawing.Size(280, 296)
        Me.AxSymbologyControl1.TabIndex = 3
        '
        'GroupBox3
        '
        Me.GroupBox3.Controls.Add(Me.TextBox3)
        Me.GroupBox3.Controls.Add(Me.TextBox2)
        Me.GroupBox3.Controls.Add(Me.TextBox1)
        Me.GroupBox3.Controls.Add(Me.Label4)
        Me.GroupBox3.Controls.Add(Me.Label3)
        Me.GroupBox3.Controls.Add(Me.Label2)
        Me.GroupBox3.Location = New System.Drawing.Point(320, 144)
        Me.GroupBox3.Name = "GroupBox3"
        Me.GroupBox3.Size = New System.Drawing.Size(248, 136)
        Me.GroupBox3.TabIndex = 0
        Me.GroupBox3.TabStop = False
        Me.GroupBox3.Text = "Break"
        '
        'TextBox3
        '
        Me.TextBox3.Enabled = False
        Me.TextBox3.Location = New System.Drawing.Point(128, 104)
        Me.TextBox3.Name = "TextBox3"
        Me.TextBox3.TabIndex = 8
        Me.TextBox3.Text = ""
        '
        'TextBox2
        '
        Me.TextBox2.Enabled = False
        Me.TextBox2.Location = New System.Drawing.Point(128, 64)
        Me.TextBox2.Name = "TextBox2"
        Me.TextBox2.TabIndex = 7
        Me.TextBox2.Text = ""
        '
        'TextBox1
        '
        Me.TextBox1.Location = New System.Drawing.Point(128, 24)
        Me.TextBox1.Name = "TextBox1"
        Me.TextBox1.TabIndex = 6
        Me.TextBox1.Text = ""
        '
        'Label4
        '
        Me.Label4.Location = New System.Drawing.Point(16, 104)
        Me.Label4.Name = "Label4"
        Me.Label4.TabIndex = 5
        Me.Label4.Text = "Max Value:"
        '
        'Label3
        '
        Me.Label3.Location = New System.Drawing.Point(16, 64)
        Me.Label3.Name = "Label3"
        Me.Label3.TabIndex = 4
        Me.Label3.Text = "Min Value:"
        '
        'Label2
        '
        Me.Label2.Location = New System.Drawing.Point(16, 24)
        Me.Label2.Name = "Label2"
        Me.Label2.Size = New System.Drawing.Size(104, 23)
        Me.Label2.TabIndex = 3
        Me.Label2.Text = "Number of Classes:"
        '
        'Button2
        '
        Me.Button2.Location = New System.Drawing.Point(416, 296)
        Me.Button2.Name = "Button2"
        Me.Button2.TabIndex = 1
        Me.Button2.Text = "OK"
        '
        'Button3
        '
        Me.Button3.Location = New System.Drawing.Point(496, 296)
        Me.Button3.Name = "Button3"
        Me.Button3.TabIndex = 2
        Me.Button3.Text = "Cancel"
        '
        'Form2
        '
        Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13)
        Me.ClientSize = New System.Drawing.Size(584, 334)
        Me.Controls.Add(Me.Button3)
        Me.Controls.Add(Me.Button2)
        Me.Controls.Add(Me.GroupBox1)
        Me.Controls.Add(Me.GroupBox2)
        Me.Controls.Add(Me.GroupBox3)
        Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog
        Me.Name = "Form2"
        Me.Text = "Class Breaks Renderer"
        Me.GroupBox1.ResumeLayout(False)
        Me.GroupBox2.ResumeLayout(False)
        CType(Me.AxSymbologyControl1, System.ComponentModel.ISupportInitialize).EndInit()
        Me.GroupBox3.ResumeLayout(False)
        Me.ResumeLayout(False)

    End Sub

#End Region

    Private Sub Form3_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        'Get the ArcGIS install location
        Dim sInstall As String = ESRI.ArcGIS.RuntimeManager.ActiveRuntime.Path

        'Load the ESRI.ServerStyle file into the SymbologyControl
        AxSymbologyControl1.LoadStyleFile(sInstall + "\\Styles\\ESRI.ServerStyle")

        'Set the style class
        AxSymbologyControl1.StyleClass = esriSymbologyStyleClass.esriStyleClassColorRamps

        'Select the color ramp item
        AxSymbologyControl1.GetStyleClass(AxSymbologyControl1.StyleClass).SelectItem(0)
    End Sub

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click

        'Create a new ClassBreaksRenderer and set properties
        m_classBreaksRenderer = New ClassBreaksRenderer
        m_classBreaksRenderer.Field = ComboBox1.SelectedItem
        m_classBreaksRenderer.BreakCount = Convert.ToInt32(TextBox1.Text)
        m_classBreaksRenderer.MinimumBreak = Convert.ToDouble(TextBox2.Text)

        'Calculate the class interval by a simple mean value
        Dim interval As Double
        interval = (Convert.ToDouble(TextBox3.Text) - m_classBreaksRenderer.MinimumBreak) / m_classBreaksRenderer.BreakCount

        'Get the color ramp
        Dim colorRamp As IColorRamp
        colorRamp = m_styleGalleryItem.Item
        'Set the size of the color ramp and recreate it
        colorRamp.Size = Convert.ToInt32(TextBox1.Text)
        colorRamp.CreateRamp(False)

        Dim i As Integer, currentBreak As Double
        Dim simpleFillSymbol As ISimpleFillSymbol

        'Get the enumeration of colors from the color ramp
        Dim enumColors As IEnumColors = colorRamp.Colors
        enumColors.Reset()
        currentBreak = m_classBreaksRenderer.MinimumBreak

        'Loop through each class break
        For i = 0 To m_classBreaksRenderer.BreakCount - 1
            'Set class break
            m_classBreaksRenderer.Break(i) = currentBreak
            'Create simple fill symbol and set color
            simpleFillSymbol = New SimpleFillSymbolClass
            simpleFillSymbol.Color = enumColors.Next()
            'Add symbol to renderer
            m_classBreaksRenderer.Symbol(i) = simpleFillSymbol
            currentBreak += interval
        Next i

        'Hide the form
        Me.Hide()

    End Sub

    Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
        Me.Hide()
    End Sub

    Public Function GetClassBreaksRenderer(ByVal featureLayer As IFeatureLayer) As IClassBreaksRenderer

        m_featureLayer = featureLayer

        ComboBox1.Items.Clear()

        'Add numeric fields names to the combobox
        Dim fields As IFields, i As Integer
        fields = m_featureLayer.FeatureClass.Fields
        For i = 0 To fields.FieldCount - 1
            If fields.Field(i).Type = esriFieldType.esriFieldTypeDouble Or _
                fields.Field(i).Type = esriFieldType.esriFieldTypeInteger Or _
                fields.Field(i).Type = esriFieldType.esriFieldTypeSingle Or _
                fields.Field(i).Type = esriFieldType.esriFieldTypeSmallInteger Then
                ComboBox1.Items.Add(fields.Field(i).Name)
            End If
        Next
        ComboBox1.SelectedIndex = 0

        'Show form modally and wait for user input
        Me.ShowDialog()

        'return the ClassBreaksRenderer
        Return m_classBreaksRenderer

    End Function

    Private Sub TextBox1_Leave(ByVal sender As Object, ByVal e As System.EventArgs) Handles TextBox1.Leave

        Dim colorRamp As IColorRamp = m_styleGalleryItem.Item

        'Ensure is numeric
        If IsNumeric(TextBox1.Text) = False Then
            System.Windows.Forms.MessageBox.Show("Must be a numeric!")
            TextBox1.Text = "10"
            Exit Sub
        ElseIf Convert.ToInt32(TextBox1.Text) <= 0 Then
            'Ensure is not zero
            System.Windows.Forms.MessageBox.Show("Must be greater than 0!")
            TextBox1.Text = "10"
            Exit Sub
        ElseIf Convert.ToInt32(TextBox1.Text) > colorRamp.Size Then
            'Ensure does not exceed number of colors in color ramp
            System.Windows.Forms.MessageBox.Show("Must be less than " & colorRamp.Size & "!")
            TextBox1.Text = "10"
            Exit Sub
        End If

    End Sub

    Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged

        'Find the selected field in the feature layer
        Dim featureClass As IFeatureClass = m_featureLayer.FeatureClass
        Dim field As IField = featureClass.Fields.Field(featureClass.FindField(ComboBox1.Text))

        'Get a feature cursor
        Dim cursor As ICursor
        cursor = m_featureLayer.Search(Nothing, False)

        'Create a DataStatistics object and initialize properties
        Dim dataStatistics As IDataStatistics = New DataStatisticsClass
        dataStatistics.Field = field.Name
        dataStatistics.Cursor = cursor

        'Get the result statistics
        Dim statisticsResults As IStatisticsResults
        statisticsResults = dataStatistics.Statistics

        'Set the values min and max values
        TextBox2.Text = statisticsResults.Minimum
        TextBox3.Text = statisticsResults.Maximum
        TextBox1.Text = 10

    End Sub

    Private Sub AxSymbologyControl1_OnItemSelected(ByVal sender As Object, ByVal e As ESRI.ArcGIS.Controls.ISymbologyControlEvents_OnItemSelectedEvent) Handles AxSymbologyControl1.OnItemSelected
        'Get the selected item
        m_styleGalleryItem = e.styleGalleryItem
    End Sub
End Class