首页 > 其他分享 >WinForm中使用MaskedTextBox制作IP地址输入框

WinForm中使用MaskedTextBox制作IP地址输入框

时间:2024-06-15 12:33:12浏览次数:9  
标签:case int IP MaskedTextBox 输入框 SelectionStart IP地址 MaskedTextProvider

1.实现的功能:输入IP地址,形如000.000.000.000的格式,并设置keydown事件,当输入点(.)的时候,自动跳至下一栏。

具体方法:
(1).从工具箱中拖入一个MaskedTextBox,命名为MaskedTextBox_IP。
(2).在Mask属性中,输入:000.000.000.000。
(3).在PromptChar属性中,将_换为空格,如果你喜欢_的话,也可以不用换。
(4).创建KeyDown事件,附以下代码:
代码实现方法1:

private void MaskedTextBox_IP_KeyDown(object sender, KeyEventArgs e)
{
//说明:Keys.Decimal为.
if (e.KeyCode == Keys.Decimal)
{
int pos = MaskedTextBox_IP.SelectionStart;
//说明:MaskedTextBox_IP.MaskedTextProvider.Length值为15,包含了点(.)。
//说明:MaskedTextBox_IP.MaskedTextProvider.EditPositionCount值为12,不包含点(.)
int max = (MaskedTextBox_IP.MaskedTextProvider.Length - MaskedTextBox_IP.MaskedTextProvider.EditPositionCount);
int nextField = 0;

    for (int i = 0; i < MaskedTextBox_IP.MaskedTextProvider.Length; i++)
    {
        if (!MaskedTextBox_IP.MaskedTextProvider.IsEditPosition(i) && (pos + max) >= i)
            nextField = i;
    }
    nextField += 1;
    MaskedTextBox_IP.SelectionStart = nextField;

    //说明:只要是点(.)的地方都是false
    for (int i = 0; i < MaskedTextBox_IP.MaskedTextProvider.Length; i++)
    {
        Console.WriteLine(MaskedTextBox_IP.MaskedTextProvider.IsEditPosition(i));
    }
}

}

代码实现方法2:

private void MaskedTextBox_IP_KeyDown(object sender, KeyEventArgs e)
{
//说明:Keys.Decimal为.
if (e.KeyCode == Keys.Decimal)
{
switch (MaskedTextBox_IP.SelectionStart)
{
case 0:
case 1:
case 2:
case 3:
MaskedTextBox_IP.SelectionStart = 4;
break;
case 4:
case 5:
case 6:
case 7:
MaskedTextBox_IP.SelectionStart = 8;
break;
case 8:
case 9:
case 10:
case 11:
MaskedTextBox_IP.SelectionStart = 12;
break;
default:
break;
}
}
}

(5).在取值的过程中,记得要Replace空格。

string sData = MaskedTextBox_IP.Text.Replace(" ", "");

标签:case,int,IP,MaskedTextBox,输入框,SelectionStart,IP地址,MaskedTextProvider
From: https://www.cnblogs.com/qdxt/p/18249166

相关文章

  • 使用getaddrinfo函数来获取并打印出www.baidu.com的所有IP地址(IPv4和IPv6)
    #include<stdlib.h>#include<string.h>#include<sys/types.h>#include<sys/socket.h>#include<netdb.h>#include<arpa/inet.h>intmain(){structaddrinfohints,*res,*p;intstatus;charipstr[INET6_AD......
  • 【Test 68 】OSI 七层模型初识、网络传输的流程、IP地址和MAC地址! 面试高频考点!
    文章目录1.OSI七层模型2.TCP/IP五层(或四层)模型3.网络传输基本流程......
  • IP地址简介
    一、IP地址        InternetProtocolAddress,即网络层协议地址,是IP的缩写。二、IP地址的作用   为什么不直接使用MAC,又加了一个IP地址呢?        事实上底层传输,最终使用的肯定是MAC地址,但是由于在以前,每个网卡出厂时,都有一个全球唯一的MAC地址......
  • 代码随想录算法训练营第二十八天 | 93.复原IP地址
    93.复原IP地址题目链接文章讲解视频讲解classSolution{private:vector<string>ip;vector<string>result;public:vector<string>restoreIpAddresses(strings){backtracking(s,0);returnresult;}voidbacktrackin......
  • 静态IP地址:多元化场景下的稳定连接解决方案
    当考虑静态IP地址的适用场景时,我们可以从以下几个板块进行细分和归纳:一、服务器托管与网络服务1.服务器托管·  稳定性:静态IP确保服务器能够持续、稳定地接入互联网,减少因IP地址更新带来的服务中断风险。·  可访问性:对于需要持续访问的服务,如网站、邮件服务器等,静态I......
  • 代码随想录训练营第28天 | 93.复原IP地址、78.子集 、90.子集II
    93.复原IP地址本期本来是很有难度的,不过大家做完分割回文串之后,本题就容易很多了题目链接/文章讲解:https://programmercarl.com/0093.复原IP地址.html视频讲解:https://www.bilibili.com/video/BV1XP4y1U73i/和分割字符串类似,还有判断当前数字是否符合要求functionisValid......
  • linux下用域名解析ip地址列表
    linux下用域名解析ip地址列表目录linux下用域名解析ip地址列表头文件/宏定义主函数验证结果头文件/宏定义#include<stdio.h>#include<stdlib.h>#include<netdb.h>#include<arpa/inet.h>主函数/********************************************************************......
  • 设计程序实现解析www.baidu.com的域名,把获取到的百度的IP地址全部输出到终端并验证是
    目录题目分析代码结果题目设计程序实现解析www.baidu.com的域名,把获取到的百度的IP地址全部输出到终端并验证是否正确。分析1.通过目标域名获取目标IP地址对应的网络字节序(需强转为对应的类型),使用gethostbyname()函数;2.把获取的网络字节序转换为点分十进制的IP地址(需强......
  • BootStrap入门到实战:BootStrap组件(二)- 输入框组、导航、导航条、路径导航(面包屑效果)
    目录一、输入框组1.基本实例2.尺寸3.作为额外元素的多选框和单选框4.作为额外元素的按钮5.作为额外元素的按钮式下拉菜单6.作为额外元素的分裂式按钮下拉菜单二、导航1.标签页2.胶囊式标签页3.两端对齐的标签页4.禁用的链接5.添加下拉菜单三、导航条......
  • ip地址快速切换软件有哪些好处
    ip地址快速切换软件有哪些好处?IP地址快速切换软件具有诸多显著的好处,以下是对其主要优势的详细阐述:首先,IP地址快速切换软件极大地提升了网络活动的灵活性和便捷性。对于需要经常切换网络环境或进行多账号管理的用户而言,这类软件无疑是一个强大的助手。无论是出于工作需要还是......