不知道,为什么微软不在Visual Studio .Net中给一个标准的IP地址控件?我非常需要一个像MFC中的CIPAddressCtrl类的IP地址控件,最终,我只能自己做了。
我尽量用c#来模仿之前的那个控件,希望我是成功的:)

背景
IPAddressControl控件,由下面几个部件组成:3个DotCtrl,4个FieldCtrl。

与TextBox相比,FieldCtrls增加了一些键盘过滤和验证的功能。DotCtrl就只是显示一个.
代码使用
在Toolbox中,添加IPAddressControlLib.dll,然后,把这个控件拖到你的Form上。
公共属性
AutoHeight: 默认True,指定控件是否根据字体自动调整高度
Blank: 指示是否所有的field都是空的
BorderStyle: 边框类型,默认BorderStyle.Fixed3D
ReadOnly: 是否只读
公共方法
Clear: 清除控件里的内容
GetAddressBytes: 返回地址字节数组,0地址存放最左边的field
SetAddressBytes: 设置上面的值
SetFieldFocus: 设置键盘焦点到哪个field
SetFieldRange: 设置field的最低和最大值
上面的是标准UserControl之外的方法和属性。Text, Enabled, Font 和ToString()方法,和以前一样起作用。
另外,FieldChangedEvent可以注册用来监控值的改变。
注意:Text 和 ToString() 可能返回不一样的值。如果是空的话,Text 会返回空,而ToString() 会返回RangeLower 最低值。
IPAddress ipAddress = new IPAddress( ipAddressControl.GetAddressBytes() );