C# 制作IP 输入框


最近在写IP输入的判断逻辑,要实现IP控件的功能,首先要了解其功能。然后专门体验了一把系统自带输入ip的控件,主要逻辑有:

1.输入为0——255,(根据IP的实际分配情况,实际数字小于这个范围)

2.按字母键时,要接管系统对按键事件处理的响应。

3.按“."或者空格键,智能跳转到下一个IP输入框。

》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》

自己制作的结果:

参考此工程,http://code.google.com/p/ipaddresscontrollib/ 一个IP输入框为一个Panel控件,包含四个textBox和四个Label。textBox负责输入文本及逻辑处理,label仅显示“.”

输入处理主要处理按键的keyPress事件,判断输入的键值是否为数字,“.",“ ”,其他 四种情况。同时根据textBox已有的内容,判断输入的是否是0-255。

逻辑判断代码如下:

逻辑判断

panel的每个文本框调用上述方法(或者叫函数)

private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
        {
            ipJustify(textBox1, e);           
        }

传入参数e,是为了判断是否接管系统的按键处理事件。默认情况下,函数处理完按键事件后,系统会调用默认按键处理事件。

e.handled=true; //接管

--------------------------------------------------------------------------------

不足之处:一个panel的四个文本框,不太灵活,扩展性不强。如果直接复制整个panel,则产生的textBox的序号会颠倒,求大神解。最好可以做个现成的控件,以后可以直接调用。

主要就是keyDown keyPress keyUp事件的判断处理。这方面,我用messageBox弹窗,发现事件发生的先后顺序为keyPress,keyDown,keyUp,跟网上的说法不一样。不知何故?


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM