MaskedTextBox中对IP信息输入的处理

在VB.NET中,MaskedTextBox对于一些格式化的输入非常有用,但是初次接触到它,有时候让人无所适从,比如这个控件用于IP地址输入时,就会出现让人头痛的问题。

比如,在MaskedTextBox中定义IP地址的格式为“000.000.000.000”后,满以为可以轻松搞定IP地址的输入实际上却不是那么回事,这里输入字符串"192.168.0.103"到控件中显示会是什么样呢?
“192.168.010.3__” !!

傻眼了吧。怎么回事呢?当用“0”作为掩码的时候表示这个位置必须不可少,除非程序没有填入。

好了,问题如何解决,如果用其他控件,感觉很麻烦,既然东西有了,如何把它用好也许更容易接受。

这里写出如下程序用于将输入文本和数值进行处理:

Private Function getIPAddressMasked(ByRef vip() As Integer, ByVal strIP_in As String) As String
        Dim n As Integer
        Dim s As String
        Dim st As String

        st = strIP_in
        st = Replace(st, " ", "")
        n = InStr(st, ".")
        s = Mid(st, 1, n - 1)
        vip(0) = Val(s)
        st = Mid(st, n + 1)

        n = InStr(st, ".")
        s = Mid(st, 1, n - 1)
        vip(1) = Val(s)
        st = Mid(st, n + 1)

        n = InStr(st, ".")
        s = Mid(st, 1, n - 1)
        vip(2) = Val(s)
        st = Mid(st, n + 1)

        vip(3) = Val(st)


        st = ""
        s = Trim(Str(vip(0)))
        If Len(s) = 2 Then s = " " + s
        If Len(s) = 1 Then s = "  " + s
        st = st + s + "."
        s = Trim(Str(vip(1)))
        If Len(s) = 2 Then s = " " + s
        If Len(s) = 1 Then s = "  " + s
        st = st + s + "."
        s = Trim(Str(vip(2)))
        If Len(s) = 2 Then s = " " + s
        If Len(s) = 1 Then s = "  " + s
        st = st + s + "."
        s = Trim(Str(vip(3)))
        If Len(s) = 2 Then s = " " + s
        If Len(s) = 1 Then s = "  " + s
        st = st + s
        Return st
    End Function


    Private Sub cmdLink_Click(sender As Object, e As EventArgs) Handles cmdLink.Click
        Dim st As String
        Dim s As String
        Dim vip(4) As Integer
        Dim i As Integer
        st = mtbIP.Text
        s = getIPAddressMasked(vip, st) 
        mtbIP.Text = s
        st = ""
        For i = 0 To 3 
            s = Trim(Str(vip(i)))
            If (i <> 3) Then
                s = s + "."
            End If
            st = st + s
        Next
        MsgBox(st)
    End Sub
注意:MaskedTextBox的控件名字为mtbIP,系统从控件中获取到字符串后,将字符串送到getIPAddressMasked函数进行处理,处理后通过vip返回每个域的数值,通过函数返回用于MaskedTextBox能正常显示的字符串,如果需要进一步用于其他处理,可以很简单地转换为大家“喜闻乐见”的IP字符串标准格式,这里用MsgBox直接 蹦 出来。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值