winform之ip地址控件textBox
C# winform 显示编辑ip地址,无需重绘textBox或者重写textBox方法,只需要在原生textBox控件对应事件中实现对应的算法即可。
1、textBox keyUp事件
private void textBoxKeyUp(object sender, KeyEventArgs e)
{if (e.KeyCode == Keys.Back)return;String text = textBoxIP.Text;string[] subs = text.Split('.');bool update = false;int index = 0;foreach (var sub in subs){Debug.WriteLine($"Substring: {sub}");if(sub != String.Empty){if (Convert.ToUInt16(sub) > 255){subs[index] = "255";update = true;}}else{update = true;}if((subs.Length == (index+1)) &&(sub.Length >= 3)){update = true;}index++;}if (update){textBoxIP.Text = "";index = 0;foreach (var sub in subs){if (sub == String.Empty)continue;if(index < 3){textBoxIP.Text += String.Format("{0}.", sub);}else if (index == 3){textBoxIP.Text += String.Format("{0}", sub);}if(index >= 4){update = true;}index++;}textBoxIP.SelectionStart = textBoxIP.Text.Length;//设置光标在末尾 }
}
2、textBox click事件
private void textBoxClick(object sender, EventArgs e)
{String text = textBoxIP.Text;if (textBoxIP.SelectionStart >= text.Length)return;int offset_start = text.LastIndexOf('.', textBoxIP.SelectionStart, textBoxIP.SelectionStart);Debug.WriteLine("offset_start:{0}", offset_start);if (offset_start == -1){textBoxIP.SelectionStart = 0;}else{textBoxIP.SelectionStart = offset_start+1;}int offset_end = text.IndexOf('.',textBoxIP.SelectionStart, textBoxIP.Text.Length- textBoxIP.SelectionStart);Debug.WriteLine("offset_end:{0}", offset_end);if(offset_end == -1){textBoxIP.SelectionLength = textBoxIP.Text.Length - textBoxIP.SelectionStart;}else{textBoxIP.SelectionLength = offset_end - textBoxIP.SelectionStart;}}
3、实现功能
a)自动补充'.'
b)限制大于255输入
c)点击自动选择
winform之ip地址控件textBox相关推荐
- vc中IP地址控件的使用
CIPAddressCtrl类:提供了IP地址控件的功能 CIPAddressCtrl::ClearAddress 清除IP地址控件中的内容.void ClearAddress(); CIPAddre ...
- QT 实现自定义的IP地址控件
此IP输入控件支持可通过tab,值大于255,点击.按钮,或者左右键切换等来实现切换输入框. 单个输入框功能,限制大小0-255: #ifndef CMYIPPARTLINEEDIT_H #defin ...
- VC MFC C++ IPControl CIPAddressCtrl IP输入控件使用
直接通过控件ID获取控件指针来操作控件(不用声明变量) CIPAddressCtrl* mIPAddressCtrl_ServerIP = ((CIPAddressCtrl*)GetDlgItem(I ...
- c#在WinForm中重写ProgressBar控件(带%的显示)
c#在WinForm中重写ProgressBar控件(带%的显示) 2009-05-14 13:13 #region 定义textProgressBar控件的类 namespace csPublish ...
- C# Winform 自定义 日程日历控件
C# Winform 自定义 日程日历控件 下载地址: https://download.csdn.net/download/dilidida/33627515
- Winform实现在DataGridView控件的单元格中添加多个控件
Winform实现在DataGridView控件的单元格中添加多个控件 背景 实现思路 关键代码 完整代码下载 背景 DataGridView控件的列是支持TextBoxColumn.ComboBox ...
- WPF显示经常使用的几个显示文字控件TextBox, TextBlock, Lable
WPF显示经常使用的几个显示文字控件TextBox, TextBlock, Lable TextBox, TextBlock. Lable 当中TextBox 和Lable均继承了Control类 能 ...
- [转] WinForm实现移除控件某个事件的方法
原文 WinForm实现移除控件某个事件的方法 本文实例讲述了WinForm实现移除控件某个事件的方法,供大家参考借鉴一下.具体功能代码如下: 主要功能部分代码如下: 1 2 3 4 5 6 7 8 ...
- 正则表达式——WPF输入控件TextBox 限定输入特定字符
正则表达式--WPF输入控件TextBox 限定输入特定字符 原文:正则表达式--WPF输入控件TextBox 限定输入特定字符 概念: 正则表达式是对字符串操作的一种逻辑公式, 就是用事先定义好的一 ...
最新文章
- R语言使用ggpubr包的ggarrange函数组合多张结论图(水平并排组合)
- ActiveMQ学习笔记(8)——导入ActiveMQ源码到Eclipse
- JAVA_OA(五):SpringMVC接受传入页面的参数值
- 在linux下安装JDK
- C#中获取指定目录下所有目录的名称、全路径和创建日期
- BAT批处理代码快速打开注册表并定位到指定目录
- imread函数_MATLAB图像处理:27:使用imtranslate函数平移图像
- ExtJS 4 Beta 2预览:Ext.Brew包
- ubuntu16.04下wifi上网速度很慢的解决方案
- 第六章:react-router4
- weixin-api生成二维码
- Centos6.7 简单搭建dns服务器
- UVAlive3662 Another Minimum Spanning Tree 莫队算法
- Oracle的一些简单用法
- 【数据库查询--电影制片系列】--查询在st1公司于2018年制作的电影中出演的影星。
- Save Apply mechanism of luci
- 《一万小时理论》读书笔记
- 路径MTU(PMTU)发现控制与DF位
- python安装以后怎么打开_安装python后如何打开
- JavaWEB做一个美女网站