Csharp/C Sharp/GUI Windows Form/UpDown — различия между версиями

Материал из .Net Framework эксперт
Перейти к: навигация, поиск
м (1 версия)
 
(нет различий)

Версия 15:31, 26 мая 2010

Convert value from Numeric Dropdown to Int

using System;
using System.Collections.Generic;
using System.ruponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
public class Form1 : Form
{
   private System.Windows.Forms.NumericUpDown yearUpDown;
   private System.Windows.Forms.Button calculateButton;
   public Form1() {
      InitializeComponent();
   }
   private void calculateButton_Click( object sender, EventArgs e )
   {
      Console.WriteLine(Convert.ToInt32( yearUpDown.Value ));
   } 
   private void InitializeComponent()
   {
      this.yearUpDown = new System.Windows.Forms.NumericUpDown();
      this.calculateButton = new System.Windows.Forms.Button();
      ((System.ruponentModel.ISupportInitialize)(this.yearUpDown)).BeginInit();
      this.SuspendLayout();
      this.yearUpDown.Location = new System.Drawing.Point(84, 97);
      this.yearUpDown.Maximum = new decimal(new int[] {
            10,
            0,
            0,
            0});
      this.yearUpDown.Minimum = new decimal(new int[] {
            1,
            0,
            0,
            0});
      this.yearUpDown.Name = "yearUpDown";
      this.yearUpDown.ReadOnly = true;
      this.yearUpDown.Size = new System.Drawing.Size(100, 20);
      this.yearUpDown.TabIndex = 5;
      this.yearUpDown.TextAlign = System.Windows.Forms.HorizontalAlignment.Right;
      this.yearUpDown.Value = new decimal(new int[] {
            1,
            0,
            0,
            0});
      this.calculateButton.Location = new System.Drawing.Point(196, 16);
      this.calculateButton.Name = "calculateButton";
      this.calculateButton.Size = new System.Drawing.Size(75, 23);
      this.calculateButton.TabIndex = 8;
      this.calculateButton.Text = "Calculate";
      this.calculateButton.Click += new System.EventHandler(this.calculateButton_Click);
      // 
      // interestCalculatorForm
      // 
      this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
      this.ClientSize = new System.Drawing.Size(289, 288);
      this.Controls.Add(this.calculateButton);
      this.Controls.Add(this.yearUpDown);
      this.Name = "interestCalculatorForm";
      this.Text = "Interest Calculator";
      ((System.ruponentModel.ISupportInitialize)(this.yearUpDown)).EndInit();
      this.ResumeLayout(false);
      this.PerformLayout();
   }
  [STAThread]
  static void Main()
  {
    Application.EnableVisualStyles();
    Application.Run(new Form1());
  }
}


Numeric value based Up Down (Spinner)

    using System;
  using System.Drawing;
  using System.Collections;
  using System.ruponentModel;
  using System.Windows.Forms;
  using System.Data;
  public class UpDownForm : System.Windows.Forms.Form
  {
    private System.Windows.Forms.Label lblCurrSel;
    private System.Windows.Forms.Button btnGetSelections;
    private System.Windows.Forms.Label label1;
    private System.Windows.Forms.NumericUpDown numericUpDown;
    public UpDownForm()
    {
      InitializeComponent();
    }
    private void InitializeComponent()
    {
      this.label1 = new System.Windows.Forms.Label ();
      this.numericUpDown = new System.Windows.Forms.NumericUpDown ();
      this.btnGetSelections = new System.Windows.Forms.Button ();
      this.lblCurrSel = new System.Windows.Forms.Label ();
      numericUpDown.BeginInit ();
      label1.Location = new System.Drawing.Point (8, 80);
      label1.Text = "Numeric UpDown Control";
      label1.Size = new System.Drawing.Size (232, 32);
      label1.Font = new System.Drawing.Font ("Verdana", 12);
      label1.TabIndex = 3;
      numericUpDown.Location = new System.Drawing.Point (264, 80);
      numericUpDown.Maximum = new decimal (5000);
      numericUpDown.Size = new System.Drawing.Size (168, 20);
      numericUpDown.ThousandsSeparator = true;
      numericUpDown.TabIndex = 1;
      numericUpDown.UpDownAlign = System.Windows.Forms.LeftRightAlignment.Left;
      numericUpDown.ValueChanged += new System.EventHandler (this.numericUpDown_ValueChanged);
      btnGetSelections.Location = new System.Drawing.Point (16, 136);
      btnGetSelections.Size = new System.Drawing.Size (136, 24);
      btnGetSelections.TabIndex = 4;
      btnGetSelections.Text = "Get Current Selections";
      btnGetSelections.Click += new System.EventHandler (this.btnGetSelections_Click);
      lblCurrSel.Location = new System.Drawing.Point (176, 120);
      lblCurrSel.Size = new System.Drawing.Size (256, 48);
      this.Text = "Spin Controls";
      this.AutoScaleBaseSize = new System.Drawing.Size (5, 13);
      this.ClientSize = new System.Drawing.Size (448, 181);
      this.Controls.Add (this.lblCurrSel);
      this.Controls.Add (this.btnGetSelections);
      this.Controls.Add (this.label1);
      this.Controls.Add (this.numericUpDown);
      numericUpDown.EndInit ();
    }
    static void Main() 
    {
      Application.Run(new UpDownForm());
    }
    protected void numericUpDown_ValueChanged (object sender, System.EventArgs e)
    {
      this.Text = "You changed the numeric value...";
    }
    protected void btnGetSelections_Click (object sender, System.EventArgs e)
    {
      lblCurrSel.Text =  "Number: " 
        + numericUpDown.Value;
    }
  }


String based DomainUpDown (Spinner)

  using System;
  using System.Drawing;
  using System.Collections;
  using System.ruponentModel;
  using System.Windows.Forms;
  using System.Data;
  public class UpDownForm : System.Windows.Forms.Form
  {
    private System.Windows.Forms.Label lblCurrSel;
    private System.Windows.Forms.Button btnGetSelections;
    private System.Windows.Forms.Label label1;
    private System.Windows.Forms.DomainUpDown domainUpDown;
    public UpDownForm()
    {
      InitializeComponent();
    }
    private void InitializeComponent()
    {
      this.label1 = new System.Windows.Forms.Label ();
      this.domainUpDown = new System.Windows.Forms.DomainUpDown ();
      this.btnGetSelections = new System.Windows.Forms.Button ();
      this.lblCurrSel = new System.Windows.Forms.Label ();
      label1.Location = new System.Drawing.Point (8, 24);
      label1.Text = "Domain UpDown Control";
      label1.Size = new System.Drawing.Size (224, 32);
      label1.Font = new System.Drawing.Font ("Verdana", 12);
      label1.TabIndex = 2;
      domainUpDown.Location = new System.Drawing.Point (264, 24);
      domainUpDown.Text = "domainUpDown1";
      domainUpDown.Size = new System.Drawing.Size (168, 20);
      domainUpDown.TabIndex = 0;
      domainUpDown.Sorted = true;
      domainUpDown.Wrap = true;
      domainUpDown.SelectedItemChanged += new System.EventHandler (this.domainUpDown_SelectedItemChanged);
      domainUpDown.Items.AddRange(new object[4] {"B", "A", "C", "(D)"});
      btnGetSelections.Location = new System.Drawing.Point (16, 136);
      btnGetSelections.Size = new System.Drawing.Size (136, 24);
      btnGetSelections.TabIndex = 4;
      btnGetSelections.Text = "Get Current Selections";
      btnGetSelections.Click += new System.EventHandler (this.btnGetSelections_Click);
      lblCurrSel.Location = new System.Drawing.Point (176, 120);
      lblCurrSel.Size = new System.Drawing.Size (256, 48);
      this.Text = "Spin Controls";
      this.AutoScaleBaseSize = new System.Drawing.Size (5, 13);
      this.ClientSize = new System.Drawing.Size (448, 181);
      this.Controls.Add (this.lblCurrSel);
      this.Controls.Add (this.btnGetSelections);
      this.Controls.Add (this.label1);
      this.Controls.Add (this.domainUpDown);
    }
    static void Main() 
    {
      Application.Run(new UpDownForm());
    }
    protected void domainUpDown_SelectedItemChanged (object sender, System.EventArgs e)
    {
      this.Text = "You changed the string value...";
    }
    protected void btnGetSelections_Click (object sender, System.EventArgs e)
    {
      // Get info from updowns...
      lblCurrSel.Text = "String: " 
        + domainUpDown.Text ;
    }
  }


UpDown Control

/*
Professional Windows GUI Programming Using C#
by Jay Glynn, Csaba Torok, Richard Conway, Wahid Choudhury, 
   Zach Greenvoss, Shripad Kulkarni, Neil Whitlow
Publisher: Peer Information
ISBN: 1861007663
*/
using System;
using System.Drawing;
using System.Collections;
using System.ruponentModel;
using System.Windows.Forms;
using System.Data;
namespace UpDown
{
    /// <summary>
    /// Summary description for UpDown.
    /// </summary>
    public class UpDown : System.Windows.Forms.Form
    {
      private System.Windows.Forms.Button button2;
      private System.Windows.Forms.TextBox textBox1;
      private System.Windows.Forms.Button button1;
      private System.Windows.Forms.DomainUpDown UPDOWN_DOMAIN;
      private System.Windows.Forms.Label label1;
        /// <summary>
        /// Required designer variable.
        /// </summary>
        private System.ruponentModel.Container components = null;
        public UpDown()
        {
            //
            // Required for Windows Form Designer support
            //
            InitializeComponent();
            //
            // TODO: Add any constructor code after InitializeComponent call
            //
        }
        /// <summary>
        /// Clean up any resources being used.
        /// </summary>
        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()
        {
         this.button2 = new System.Windows.Forms.Button();
         this.textBox1 = new System.Windows.Forms.TextBox();
         this.button1 = new System.Windows.Forms.Button();
         this.UPDOWN_DOMAIN = new System.Windows.Forms.DomainUpDown();
         this.label1 = new System.Windows.Forms.Label();
         this.SuspendLayout();
         // 
         // button2
         // 
         this.button2.Location = new System.Drawing.Point(136, 80);
         this.button2.Name = "button2";
         this.button2.TabIndex = 8;
         this.button2.Text = "Add Item";
         // 
         // textBox1
         // 
         this.textBox1.Location = new System.Drawing.Point(24, 80);
         this.textBox1.Name = "textBox1";
         this.textBox1.TabIndex = 7;
         this.textBox1.Text = "";
         // 
         // button1
         // 
         this.button1.Location = new System.Drawing.Point(264, 40);
         this.button1.Name = "button1";
         this.button1.Size = new System.Drawing.Size(64, 23);
         this.button1.TabIndex = 6;
         this.button1.Text = "Remove";
         // 
         // UPDOWN_DOMAIN
         // 
         this.UPDOWN_DOMAIN.BackColor = System.Drawing.Color.FromArgb(((System.Byte)(255)), ((System.Byte)(192)), ((System.Byte)(192)));
         this.UPDOWN_DOMAIN.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0)));
         this.UPDOWN_DOMAIN.ForeColor = System.Drawing.SystemColors.HotTrack;
         this.UPDOWN_DOMAIN.Location = new System.Drawing.Point(24, 40);
         this.UPDOWN_DOMAIN.Name = "UPDOWN_DOMAIN";
         this.UPDOWN_DOMAIN.Size = new System.Drawing.Size(232, 26);
         this.UPDOWN_DOMAIN.Sorted = true;
         this.UPDOWN_DOMAIN.TabIndex = 5;
         this.UPDOWN_DOMAIN.TextAlign = System.Windows.Forms.HorizontalAlignment.Center;
         this.UPDOWN_DOMAIN.UpDownAlign = System.Windows.Forms.LeftRightAlignment.Left;
         this.UPDOWN_DOMAIN.Wrap = true;
         // 
         // label1
         // 
         this.label1.Location = new System.Drawing.Point(24, 16);
         this.label1.Name = "label1";
         this.label1.Size = new System.Drawing.Size(136, 23);
         this.label1.TabIndex = 9;
         this.label1.Text = "UpDownDomain Control";
         // 
         // UpDown
         // 
         this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
         this.ClientSize = new System.Drawing.Size(344, 117);
         this.Controls.AddRange(new System.Windows.Forms.Control[] {
                                                                      this.label1,
                                                                      this.UPDOWN_DOMAIN,
                                                                      this.button1,
                                                                      this.button2,
                                                                      this.textBox1});
         this.Name = "UpDown";
         this.Text = "UpDownDomain Control";
         this.Load += new System.EventHandler(this.UpDown_Load);
         this.ResumeLayout(false);
      }
        #endregion
        /// <summary>
        /// The main entry point for the application.
        /// </summary>
        [STAThread]
        static void Main() 
        {
            Application.Run(new UpDown());
        }
        private void UpDown_Load(object sender, System.EventArgs e)
        {
            // Populate the UpDown Domain control with string objects
            UPDOWN_DOMAIN.Items.Add("Visual C#");
            UPDOWN_DOMAIN.Items.Add("Visual C++");
            UPDOWN_DOMAIN.Items.Add("Visual VB");
            UPDOWN_DOMAIN.Items.Add("Managed C++");
            UPDOWN_DOMAIN.Items.Add("Crystal Reports");
            UPDOWN_DOMAIN.Items.Add("MFC");
            UPDOWN_DOMAIN.Items.Add("ATL");
            UPDOWN_DOMAIN.Items.Add("COM");
            UPDOWN_DOMAIN.Items.Add("DCOM");
            UPDOWN_DOMAIN.Items.Add("COM+");
            UPDOWN_DOMAIN.Items.Add("SETUP");
            UPDOWN_DOMAIN.Items.Add("COMMAND LINE");
            UPDOWN_DOMAIN.Items.Add("WINDOWS SERVICE");
            UPDOWN_DOMAIN.Items.Add("WINDOWS LIBRARY");
            UPDOWN_DOMAIN.Items.Add("ASP .NET WEB");
            UPDOWN_DOMAIN.Items.Add("DATABASE APPLICATION");
        }
        private void button1_Click(object sender, System.EventArgs e)
        {
            // Select the Item that want to remove
            int nItemSel = UPDOWN_DOMAIN.SelectedIndex;
            if ( nItemSel >= 0 ) 
            {
                // Remove the item at the location
                UPDOWN_DOMAIN.Items.RemoveAt(nItemSel);
                // Update the control
                UPDOWN_DOMAIN.Update();
                // Clear the edit box
                UPDOWN_DOMAIN.Text = "" ; 
            }
        }
        private void button2_Click(object sender, System.EventArgs e)
        {
            if ( textBox1.Text == "" ) 
            {
                MessageBox.Show("Enter a string to add");
                return ;
            }
            // Add the new string the UpDownDomain control
            UPDOWN_DOMAIN.Items.Add(textBox1.Text);
            textBox1.Text = "" ; 
        }

    }
}


UpDown Derived

/*
Professional Windows GUI Programming Using C#
by Jay Glynn, Csaba Torok, Richard Conway, Wahid Choudhury, 
   Zach Greenvoss, Shripad Kulkarni, Neil Whitlow
Publisher: Peer Information
ISBN: 1861007663
*/
using System;
using System.Drawing;
using System.Collections;
using System.ruponentModel;
using System.Windows.Forms;
using System.Data;
namespace UpDown_Derived
{
    /// <summary>
    /// Summary description for UpDownDerived.
    /// </summary>
    public class UpDownDerived : System.Windows.Forms.Form
    {
        /// <summary>
        /// Required designer variable.
        /// </summary>
        private System.ruponentModel.Container components = null;
        private System.Windows.Forms.Label label1;
        private MyUpDownControl mDC = null ; 
        public UpDownDerived()
        {
            //
            // Required for Windows Form Designer support
            //
            InitializeComponent();
            //
            // TODO: Add any constructor code after InitializeComponent call
            //
        }
        /// <summary>
        /// Clean up any resources being used.
        /// </summary>
        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()
        {
            this.mDC = new UpDown_Derived.MyUpDownControl();
            this.label1 = new System.Windows.Forms.Label();
            this.SuspendLayout();
            // 
            // mDC
            // 
            this.mDC.Items.Add("FRANCE");
            this.mDC.Items.Add("ITALY");
            this.mDC.Items.Add("USA");
            this.mDC.Items.Add("UK");
            this.mDC.Items.Add("AUSTRALIA");
            this.mDC.Items.Add("INDIA");
            this.mDC.Items.Add("ZAMBIA");
            this.mDC.Items.Add("MALASYIA");
            this.mDC.Location = new System.Drawing.Point(40, 40);
            this.mDC.Name = "mDC";
            this.mDC.TabIndex = 0;
            // 
            // label1
            // 
            this.label1.Location = new System.Drawing.Point(16, 16);
            this.label1.Name = "label1";
            this.label1.Size = new System.Drawing.Size(200, 16);
            this.label1.TabIndex = 1;
            this.label1.Text = "Derived DomainUpDown Controller";
            // 
            // UpDownDerived
            // 
            this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
            this.ClientSize = new System.Drawing.Size(248, 85);
            this.Controls.AddRange(new System.Windows.Forms.Control[] {
                                                                          this.label1,
                                                                          this.mDC});
            this.Name = "UpDownDerived";
            this.Text = "My Domain Controller";
            this.Load += new System.EventHandler(this.UpDownDerived_Load);
            this.ResumeLayout(false);
        }
        #endregion
        /// <summary>
        /// The main entry point for the application.
        /// </summary>
        [STAThread]
        static void Main() 
        {
            Application.Run(new UpDownDerived());
        }
        private void UpDownDerived_Load(object sender, System.EventArgs e)
        {
        }
    }
    /// <summary>
    /// Summary description for MyUpDownControl.
    /// </summary>
    public class MyUpDownControl : System.Windows.Forms.DomainUpDown  
    {
        private int currentPos  =0;
        private string DisplayText ="";
        public MyUpDownControl()
        {
            // Populate the control with items
            Items.Add("FRANCE");
            Items.Add("ITALY");
            Items.Add("USA");
            Items.Add("UK");
            Items.Add("AUSTRALIA");
            Items.Add("INDIA");
            Items.Add("ZAMBIA");
            Items.Add("MALASYIA");
        
        }
        public override void DownButton()
        {
            // Check if the Down Arrow is clicked
            currentPos ++;
            if ( currentPos >= Items.Count )
                currentPos = 0 ; 
            UpdateEditText();
        }
        public override void UpButton()
        {
            // Check if the Up Arrow is clicked
            currentPos -- ; 
            if ( currentPos < 0 ) currentPos = Items.Count-1 ; 
            UpdateEditText();
        }
        protected override void UpdateEditText()
        {
            // Update the EditBox 
            DisplayText = (string)this.Items[currentPos ];
            this.Text = DisplayText; 
        }
        public void Sort()
        {
            if ( this.Sorted ) 
                this.Sorted= false ;
            else
                this.Sorted= true ;
            if ( this.Sorted ) 
                this.Sort() ;
            
            UpdateEditText() ;
        }
    }

}