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;

                 }
                */

            }

        }
    }

  • 相关阅读:
    PNG文件格式具体解释
    opencv2对读书笔记——使用均值漂移算法查找物体
    Jackson的Json转换
    Java实现 蓝桥杯VIP 算法训练 装箱问题
    Java实现 蓝桥杯VIP 算法训练 装箱问题
    Java实现 蓝桥杯VIP 算法训练 单词接龙
    Java实现 蓝桥杯VIP 算法训练 单词接龙
    Java实现 蓝桥杯VIP 算法训练 方格取数
    Java实现 蓝桥杯VIP 算法训练 方格取数
    Java实现 蓝桥杯VIP 算法训练 单词接龙
  • 原文地址:https://www.cnblogs.com/elzero/p/817941.html
Copyright © 2011-2022 走看看