Форматирование текстового формата textbox.text, например: ##. ###. ### / #### - ## - PullRequest
0 голосов
/ 06 мая 2018

Мне нужен такой формат для 14 символов:

10.257.938 / 0001,45

Но когда я выполняю этот код, я получаю

### ### / #### -..

на моем txtcnpj.text.

Мне действительно не нравится использовать maskedbox. Вот мой код (на потерянном фокусе.):

Private Sub txtcnpj_LostFocus(sender As Object, e As EventArgs) Handles txtcnpj.LostFocus

        If Len(txtcnpj.Text) > 0 Then

            Select Case Len(txtcnpj.Text)

                Case Is = 11
                    txtcnpj.Text = Format(txtcnpj.Text, "###.###.###-##")

                Case Is = 14
                    txtcnpj.Text = Format(txtcnpj.Text, "##.###.###/####-##")

            End Select
        End If
    End Sub

ИЛИ КОГДА Я ИСПОЛЬЗУЛ ##. ###. ### / #### - ## RETURN

решено Эндрю Мортоном, ТЫ ЭНДРЮ. УХУЛ.

В моем случае решение:

Private Sub txtcnpj_LostFocus(sender As Object, e As EventArgs) Handles txtcnpj.LostFocus

    If Len(txtcnpj.Text) > 0 Then

        Select Case Len(txtcnpj.Text)

                      Case Is = 14
                Dim A As String
                A = txtcnpj.Text.Replace("."c, "").Replace("/"c, "")
                txtcnpj.Text = String.Concat(A.Substring(0, 2), ".", A.Substring(2, 3), ".", A.Substring(5, 3), "/", A.Substring(8, 4), "-", A.Substring(12, 2))

        End Select
    End If

End Sub

1 Ответ

0 голосов
/ 06 мая 2018

Такое форматирование для чисел, а не для строк.

Будет проще написать свои собственные методы, например:

Option Strict On

Module Module1

    Function FormatWithSlash(s As String) As String
        s = s.Replace("."c, "").Replace("/"c, "")
        Return String.Concat(s.Substring(0, 2), ".", s.Substring(2, 3), ".", s.Substring(5, 3), "/", s.Substring(8, 4), ".", s.Substring(12, 2))
    End Function

    Sub Main()
        Console.WriteLine(FormatWithSlash("12345678901234"))
        Console.WriteLine(FormatWithSlash("10.257.938/0001.45"))

        Console.ReadLine()

    End Sub

End Module

выходы:

12.345.678 / 9012,34
10.257.938 / 0001,45

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...