IP控件(功能跟电脑自带的一样,输入三位数后自动跳转,输入"."也会自动跳转)
来源:互联网 发布:淘宝商品上架 编辑:程序博客网 时间:2024/06/04 18:52
之前在网上寻找IP控件,查了好多都不尽人意,于是自己动手做一个吧,
1.创建自定义控件,在上面放4个方本框,3个label控件,
2.编写代码
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Text;
using System.Windows.Forms;
namespace IPControl
{
public partial class IPaddressControl : UserControl
{
bool blInputOrGet = false;
//public delegate void TextChangedEventHandler(object sender, TextChangedEventArgs e);
//定义用户单击该控件的事件
public event EventHandler CClick;
public IPaddressControl()
{
InitializeComponent();
this.Size = new Size(122, 24);
}
private void IPaddressControl_Load(object sender, EventArgs e)
{
}
//获取完整的ip值,如"192.168.0.1"
public string GetIpAddress()
{
string ipValue = string.Empty;
ipValue = ipValue + txt1.Text.Trim() + ".";
ipValue = ipValue + txt2.Text.Trim() + ".";
ipValue = ipValue + txt3.Text.Trim() + ".";
ipValue = ipValue + txt4.Text.Trim();
return ipValue;
}
// 赋值ip给该控件,如"192.168.0.1"
public bool SetIpAddress(string ipValue)
{
txt1.Text = string.Empty;
txt2.Text = string.Empty;
txt3.Text = string.Empty;
txt4.Text = string.Empty;
//判断ip地址是否合法.
if (ipValue.Length < 7)
{
return false;
}
int index = 0;
for (int i = 0; i < 3; i++)
{
index = ipValue.IndexOf(".", index + 1);
if (index == -1)
{
return false;
}
}
//解析ip地址.
string[] ipValues = new string[4];
ipValues = ipValue.Split('.');
try
{
blInputOrGet = true;
txt1.Text = Convert.ToInt16(ipValues[0]).ToString();
txt2.Text = Convert.ToInt16(ipValues[1]).ToString();
txt3.Text = Convert.ToInt16(ipValues[2]).ToString();
txt4.Text = Convert.ToInt16(ipValues[3]).ToString();
}
catch
{
return false;
}
return true;
}
//处理和过滤用户按键
private void txtBox_KeyPress(object sender, KeyPressEventArgs e)
{
TextBox txtTemp = (TextBox)sender;
//该控件只能输入‘数字键’,‘.’,‘退格键’
if (e.KeyChar >= 48 && e.KeyChar <= 57) //‘数字键’
{
//正常处理
e.Handled = false;
}
else if ( e.KeyChar == 46) //‘.’键
{
////正常处理
//e.Handled = false;
//切换到下一个文本框
this.ProcessTabKey(true);
e.Handled = true;
}
else if (e.KeyChar == 8) //‘退格键’
{
//正常处理
e.Handled = false;
}
else //非法输入
{
//忽略输入
e.Handled = true;
}
}
//文本框内容改变,控制数字不能超过255
private void txtBox_TextChanged(object sender, EventArgs e)
{
TextBox txtTemp = (TextBox)sender;
string oldtxt = txtTemp.Text;
if (txtTemp.Text.Length <= 2) { return; } //长度<=2 正常
if (txtTemp.Text.Length == 4) //长度等于4
{
txtTemp.Text = txtTemp.Text.Substring(0, 3);
//文本框长度超过3个时候,输入tab切换到下一个文本框
this.ProcessTabKey(true);
}
else if (txtTemp.Text.Length == 3) //长度等于3
{
if (Convert.ToInt16(txtTemp.Text) > 255)
{
MessageBox.Show("最大值不能超过255!");
txtTemp.Text = "";
return;
}
}
}
//响应用户的事件CClick
private void txt1_Click(object sender, EventArgs e)
{
if (CClick != null)
{
CClick(sender, e);
}
}
}
}
好了,这就是全部的代码,有兴趣的朋友可以完全制作自己的IPControl控件了~
控件下载地址http://download.csdn.net/detail/xiaoyaofriend/4698528
- IP控件(功能跟电脑自带的一样,输入三位数后自动跳转,输入"."也会自动跳转)
- 日期光标控件 输入完成后自动跳转 默认跳到日期栏
- javascript 一个文本框输入完毕后自动跳转到下一个文本框的方法
- phpheader跳转后会自动提示下载
- JS实现输入框自动跳转
- 几个输入框之间实现自动跳转
- 输入文本框,焦点自动跳转下一个文本框
- Android 跳转界面 自动弹出输入框
- python当输入url时自动跳转浏览器的bug
- JS :3秒后自动跳转功能
- webbrowser控件输入框输入信息后回车跳转
- 在输入框中输入特定位数的字母或位数字后或回车就自动跳转到下一个输入框
- ?秒后自动跳转
- 会自动跳转网页的图片属性
- 输入密码后自动登录功能的实现
- Android EditText 输入回车符自动跳转至下一个EditText
- 添加自动输入功能
- 地区门户自动IP识别与跳转功能
- IntelliJ 直接编辑国际化文件(properties)方法
- s3c2410时钟信号:FCLK、HCLK和PCLK
- 怎样使div居中显示 随窗口改变大小
- oracle 开发误区探索《一》
- Xcode - Could not launch app - No such file or directory Error.
- IP控件(功能跟电脑自带的一样,输入三位数后自动跳转,输入"."也会自动跳转)
- QtQuick3D-例子-modelview3d
- DefWndProc/WndProc/IMessageFilter的区别
- HttpServletResponse的应用
- C语言数据类型
- 如何检查内存泄露问题[转载]
- 心悸
- ajax的使用
- Scala入门指南