Create control : Custom Control « GUI Windows Forms « C# / CSharp Tutorial






Create control
using System;
    using System.Drawing;
    using System.Collections;
    using System.ComponentModel;
    using System.Windows.Forms;
    using System.Data;

  public class UserControlForm : System.Windows.Forms.Form
  {
    private UserControlExample userControlExample1;
    private System.ComponentModel.Container components = null;

    public UserControlForm()
    {
      InitializeComponent();

    }

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

    private void InitializeComponent()
    {
      this.userControlExample1 = new UserControlExample();
      this.SuspendLayout();

      this.userControlExample1.Current = 5;
      this.userControlExample1.Location = new System.Drawing.Point(98, 113);
      this.userControlExample1.Max = 10;
      this.userControlExample1.Min = 0;
      this.userControlExample1.Name = "userControlExample1";
      this.userControlExample1.Size = new System.Drawing.Size(96, 40);
      this.userControlExample1.TabIndex = 0;
      // 
      // UserControlForm
      // 
      this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
      this.ClientSize = new System.Drawing.Size(292, 266);
      this.Controls.AddRange(new System.Windows.Forms.Control[] {
                                      this.userControlExample1});
      this.Name = "UserControlForm";
      this.Text = "UserControlForm";
      this.ResumeLayout(false);

    }
    
    static void Main() 
    {
      Application.Run(new UserControlForm());
    }
  }
  public class UserControlExample : System.Windows.Forms.UserControl
  {
    private System.Windows.Forms.TextBox textBox1;
    private System.Windows.Forms.VScrollBar vScrollBar1;
    private System.ComponentModel.Container components = null;

    public UserControlExample()
    {
      InitializeComponent();
    }

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

    private void InitializeComponent()
    {
      this.textBox1 = new System.Windows.Forms.TextBox();
      this.vScrollBar1 = new System.Windows.Forms.VScrollBar();
      this.SuspendLayout();

      this.textBox1.Location = new System.Drawing.Point(8, 8);
      this.textBox1.Name = "textBox1";
      this.textBox1.ReadOnly = true;
      this.textBox1.Size = new System.Drawing.Size(48, 20);
      this.textBox1.TabIndex = 0;
      this.textBox1.Text = "";
      this.textBox1.TextAlign = System.Windows.Forms.HorizontalAlignment.Right;

      this.vScrollBar1.Location = new System.Drawing.Point(64, 8);
      this.vScrollBar1.Name = "vScrollBar1";
      this.vScrollBar1.Size = new System.Drawing.Size(17, 24);
      this.vScrollBar1.TabIndex = 1;
      this.vScrollBar1.Scroll += new System.Windows.Forms.ScrollEventHandler(this.vScrollBar1_Scroll);

      this.Controls.AddRange(new System.Windows.Forms.Control[] {
                                      this.vScrollBar1,
                                      this.textBox1});
      this.Name = "UserControlExample";
      this.Size = new System.Drawing.Size(96, 40);
      this.ResumeLayout(false);

    }
    private int m_min = int.MinValue;
    private int m_max = int.MaxValue;
    private int m_current = 0;

    private void vScrollBar1_Scroll(object sender, System.Windows.Forms.ScrollEventArgs e)
    {
      if ( e.Type == ScrollEventType.SmallIncrement )
      {
        try
        {
          Current -= 1;
        }
        catch
        {
        }
      }
      else
      {
        if ( e.Type == ScrollEventType.SmallDecrement )
        {
          try
          {
            Current += 1;
          }
          catch
          {
          }
        }
      }
      vScrollBar1.Value = 50;
    }

    public int Min
    {
      get
      {
        return m_min;
      }
      set
      {
        m_min = value;
      }
    }

    public int Max
    {
      get
      {
        return m_max;
      }
      set
      {
        m_max = value;
      }
    }

    public int Current
    {
      get
      {
        return m_current;
      }
      set
      {
        if ( ( value > m_max ) || ( value < m_min ) )
        {
          throw new ArgumentOutOfRangeException( "Current" );
        }
        m_current = value;
        textBox1.Text = m_current.ToString();
      }
    }
  }








23.56.Custom Control
23.56.1.Create your own component by subclassing System.ComponentModel.Component
23.56.2.Create controlCreate control
23.56.3.The clock control