zoukankan      html  css  js  c++  java
  • 用写C#写的一个IP输入框控件

    using System;
    using System.Collections.Generic;
    using System.Text;

    namespace IpBox
    {
        using System;
        using System.Collections;
        using System.ComponentModel;
        using System.Drawing;
        using System.Data;
        using System.Windows.Forms;
        using System.Text.RegularExpressions;

        public class IpBox : System.Windows.Forms.UserControl
        {
            private System.Windows.Forms.Panel panel1;
            private System.Windows.Forms.TextBox textBox4;
            private System.Windows.Forms.Label label3;
            private System.Windows.Forms.TextBox textBox3;
            private System.Windows.Forms.Label label2;
            private System.Windows.Forms.TextBox textBox2;
            private System.Windows.Forms.Label label1;
            private System.Windows.Forms.TextBox textBox1;
            private string _text = "";
            
            private System.ComponentModel.Container components = null;

            public IpBox()
            {
                // 该调用是 Windows.Forms 窗体设计器所必需的。
                InitializeComponent();

                // TODO: 在 InitializeComponent 调用后添加任何初始化

            }

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

            #region 组件设计器生成的代码
         
            private void InitializeComponent()
            {
                this.panel1 = new System.Windows.Forms.Panel();
                this.textBox4 = new System.Windows.Forms.TextBox();
                this.label3 = new System.Windows.Forms.Label();
                this.textBox3 = new System.Windows.Forms.TextBox();
                this.label2 = new System.Windows.Forms.Label();
                this.textBox2 = new System.Windows.Forms.TextBox();
                this.label1 = new System.Windows.Forms.Label();
                this.textBox1 = new System.Windows.Forms.TextBox();
                this.panel1.SuspendLayout();
                this.SuspendLayout();
                // 
                // panel1
                // 
                this.panel1.BackColor = System.Drawing.Color.White;
                this.panel1.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
                this.panel1.Controls.Add(this.textBox4);
                this.panel1.Controls.Add(this.label3);
                this.panel1.Controls.Add(this.textBox3);
                this.panel1.Controls.Add(this.label2);
                this.panel1.Controls.Add(this.textBox2);
                this.panel1.Controls.Add(this.label1);
                this.panel1.Controls.Add(this.textBox1);
                this.panel1.Location = new System.Drawing.Point(0, 0);
                this.panel1.Name = "panel1";
                this.panel1.Size = new System.Drawing.Size(136, 20);
                this.panel1.TabIndex = 1;
                // 
                // textBox4
                // 
                this.textBox4.BorderStyle = System.Windows.Forms.BorderStyle.None;
                this.textBox4.Location = new System.Drawing.Point(104, 0);
                this.textBox4.MaxLength = 3;
                this.textBox4.Name = "textBox4";
                this.textBox4.Size = new System.Drawing.Size(20, 14);
                this.textBox4.TabIndex = 6;
                this.textBox4.TextAlign = System.Windows.Forms.HorizontalAlignment.Center;
                this.textBox4.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.textBox4_KeyPress);
                // 
                // label3
                // 
                this.label3.Location = new System.Drawing.Point(96, 0);
                this.label3.Name = "label3";
                this.label3.Size = new System.Drawing.Size(8, 14);
                this.label3.TabIndex = 5;
                this.label3.Text = ".";
                this.label3.TextAlign = System.Drawing.ContentAlignment.TopCenter;
                // 
                // textBox3
                // 
                this.textBox3.BorderStyle = System.Windows.Forms.BorderStyle.None;
                this.textBox3.Location = new System.Drawing.Point(72, 0);
                this.textBox3.MaxLength = 3;
                this.textBox3.Name = "textBox3";
                this.textBox3.Size = new System.Drawing.Size(20, 14);
                this.textBox3.TabIndex = 4;
                this.textBox3.TextAlign = System.Windows.Forms.HorizontalAlignment.Center;
                this.textBox3.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.textBox3_KeyPress);
                // 
                // label2
                // 
                this.label2.Location = new System.Drawing.Point(64, 0);
                this.label2.Name = "label2";
                this.label2.Size = new System.Drawing.Size(8, 14);
                this.label2.TabIndex = 3;
                this.label2.Text = ".";
                this.label2.TextAlign = System.Drawing.ContentAlignment.TopCenter;
                // 
                // textBox2
                // 
                this.textBox2.BorderStyle = System.Windows.Forms.BorderStyle.None;
                this.textBox2.Location = new System.Drawing.Point(40, 0);
                this.textBox2.MaxLength = 3;
                this.textBox2.Name = "textBox2";
                this.textBox2.Size = new System.Drawing.Size(20, 14);
                this.textBox2.TabIndex = 2;
                this.textBox2.TextAlign = System.Windows.Forms.HorizontalAlignment.Center;
                this.textBox2.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.textBox2_KeyPress);
                // 
                // label1
                // 
                this.label1.Location = new System.Drawing.Point(32, 0);
                this.label1.Name = "label1";
                this.label1.Size = new System.Drawing.Size(8, 14);
                this.label1.TabIndex = 1;
                this.label1.Text = ".";
                this.label1.TextAlign = System.Drawing.ContentAlignment.TopCenter;
                // 
                // textBox1
                // 
                this.textBox1.BorderStyle = System.Windows.Forms.BorderStyle.None;
                this.textBox1.Location = new System.Drawing.Point(8, 0);
                this.textBox1.MaxLength = 3;
                this.textBox1.Name = "textBox1";
                this.textBox1.Size = new System.Drawing.Size(20, 14);
                this.textBox1.TabIndex = 0;
                this.textBox1.TextAlign = System.Windows.Forms.HorizontalAlignment.Center;
                this.textBox1.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.textBox1_KeyPress);
                // 
                // IpBox
                // 
                this.Controls.Add(this.panel1);
                this.Name = "IpBox";
                this.Size = new System.Drawing.Size(136, 20);
                this.panel1.ResumeLayout(false);
                this.panel1.PerformLayout();
                this.ResumeLayout(false);

            }
            #endregion

            private void textBox1_KeyDown(object sender, System.Windows.Forms.KeyEventArgs e)
            {
                //System.Text.Encoding.GetEncoding(0).GetString();
            }

            private void textBox1_KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e)
            {
                MaskIpAddr(textBox1, e);
            }

            private void textBox2_KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e)
            {
                MaskIpAddr(textBox2, e);
            }

            private void textBox3_KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e)
            {
                MaskIpAddr(textBox3, e);
            }

            private void textBox4_KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e)
            {
                MaskIpAddr(textBox4, e);
            }

            private void MaskIpAddr(System.Windows.Forms.TextBox textBox, KeyPressEventArgs e)
            {
                int len = textBox.Text.Length;

                if (Char.IsDigit(e.KeyChar) || e.KeyChar == '.' || e.KeyChar == 8)
                {
                    if (e.KeyChar != 8)
                    {
                        if (len == 2 && e.KeyChar != '.')
                        {
                            string tmp = textBox.Text + e.KeyChar;
                            if (textBox.Name == "textBox1")
                            {
                                if (Int32.Parse(tmp) > 223) // 进行验证
                                {
                                    MessageBox.Show(tmp + " 不是一个有效项目。请指定一个介于 1 和 223 之间的数值。");
                                    textBox.Text = "223";
                                    textBox.Focus();
                                    return;
                                }

                                textBox2.Focus();
                                textBox2.SelectAll();

                            }
                            else if (textBox.Name == "textBox2")
                            {
                                if (Int32.Parse(tmp) > 255)
                                {
                                    MessageBox.Show(tmp + " 不是一个有效项目。请指定一个介于 1 和 255 之间的数值。");
                                    textBox.Text = "255";
                                    textBox.Focus();
                                    return;
                                }
                                textBox3.Focus();
                                textBox3.SelectAll();
                            }
                            else if (textBox.Name == "textBox3")
                            {
                                if (Int32.Parse(tmp) > 255)
                                {
                                    MessageBox.Show(tmp + " 不是一个有效项目。请指定一个介于 1 和 255 之间的数值。");
                                    textBox.Text = "255";
                                    textBox.Focus();
                                    return;
                                }
                                textBox4.Focus();
                                textBox4.SelectAll();
                            }
                            else if (textBox.Name == "textBox4")
                            {
                                if (Int32.Parse(tmp) > 255)
                                {
                                    MessageBox.Show(tmp + " 不是一个有效项目。请指定一个介于 1 和 255 之间的数值。");
                                    textBox.Text = "255";
                                    textBox.Focus();
                                    return;
                                }

                            }

                        }
                        if (e.KeyChar == '.')
                        {
                            if (textBox.Name == "textBox1" && textBox.Text != "")
                            {
                                textBox2.Focus();
                                textBox2.SelectAll();
                            }
                            if (textBox.Name == "textBox2" && textBox.Text != "")
                            {
                                textBox3.Focus();
                                textBox3.SelectAll();
                            }
                            if (textBox.Name == "textBox3" && textBox.Text != "")
                            {
                                textBox4.Focus();
                                textBox4.SelectAll();
                            }
                            if (textBox.Name == "textBox4" && textBox.Text != "")
                            {

                            }
                            e.Handled = true;
                        }
                    }
                    else
                    {
                        if (textBox.Name == "textBox1" && textBox.Text == "")
                        {

                        }
                        if (textBox.Name == "textBox2" && textBox.Text == "")
                        {
                            textBox1.Focus();
                            textBox1.SelectionStart = textBox1.Text.Length;
                        }
                        if (textBox.Name == "textBox3" && textBox.Text == "")
                        {
                            textBox2.Focus();
                            textBox2.SelectionStart = textBox2.Text.Length;
                        }
                        if (textBox.Name == "textBox4" && textBox.Text == "")
                        {
                            textBox3.Focus();
                            textBox3.SelectionStart = textBox3.Text.Length;
                        }
                        e.Handled = false;
                    }
                }
                else
                    e.Handled = true;
            }


            [Browsable(true)]
            
            // 获取 IpBox 的文本。
            
            public new string Text
            {
                get
                {
                    if (textBox1.Text == ""
                     || textBox2.Text == ""
                     || textBox3.Text == ""
                     || textBox4.Text == "")
                    {
                        _text = "";
                        return _text;
                    }
                    else
                    {
                        _text = Convert.ToInt32(textBox1.Text).ToString() + "." + Convert.ToInt32(textBox2.Text).ToString() + "." + Convert.ToInt32(textBox3.Text).ToString() + "." + Convert.ToInt32(textBox4.Text).ToString();
                        return _text;
                    }

                }
                /* set  // 
                 {
                  if(value != null)
                  {
                   // 255-255-255-255
                   //string pattern = @"^([1-9]|\d{2}|1[0-9]{1,2}|2[0-5]{2})\.(\d{1,2}|1[0-9]{1,2}|[1-2][0-5]{2})\.(\d{1,2}|1[0-9]{1,2}|[1-2][0-5]{2})\.(\d{1,2}|1[0-9]{1,2}|[1-2][0-5]{2})$";
                   // 223-255-255-255
                   string pattern = @"^([1-9]|\d{2}|1[0-9]{1,2}|2[1-2][1-3])\.(\d{1,2}|1[0-9]{1,2}|[1-2][0-5]{2})\.(\d{1,2}|1[0-9]{1,2}|[1-2][0-5]{2})\.(\d{1,2}|1[0-9]{1,2}|[1-2][0-5]{2})$";

                   if( !Regex.IsMatch(value , pattern) )
                   {
                    _text = "";
                    throw new Exception("IP 地址格式错误!");
                   }
                   else
                   {
                    string[] ipnum = value.Split('.');
                    textBox1.Text = ipnum[0];
                    textBox2.Text = ipnum[1];
                    textBox3.Text = ipnum[2];
                    textBox4.Text = ipnum[3];
                   }
                  }

                  _text = value;

                 }
                */

            }

        }
    }

  • 相关阅读:
    CodeForces 681D Gifts by the List (树上DFS)
    UVa 12342 Tax Calculator (水题,纳税)
    CodeForces 681C Heap Operations (模拟题,优先队列)
    CodeForces 682C Alyona and the Tree (树上DFS)
    CodeForces 682B Alyona and Mex (题意水题)
    CodeForces 682A Alyona and Numbers (水题,数学)
    Virtualizing memory type
    页面跳转
    PHP Misc. 函数
    PHP 5 Math 函数
  • 原文地址:https://www.cnblogs.com/elzero/p/817941.html
Copyright © 2011-2022 走看看