在文本框中保持前导零

时间:2012-09-25 23:52:52

标签: vb.net textbox

我需要在用于将数据输入数据库的文本框中保留前导零。它适用于SKU Numbers。我需要能够键入前导零(例如001234567890),然后将它们输入数据库。

然而,我无法弄清楚如何将前导零保持在双倍。我不需要字符串格式,但需要双倍格式。有没有办法在保持数字而不是字符串的同时执行此操作?

EX。

txtProductBarcode.Text = Format(txtProductBarcode.Text, "############")
'This does not work

2 个答案:

答案 0 :(得分:1)

使用0代替#将导致输出前导零。

例如:

Dim s as string = string.Format("{0:000###}", 12345d)
Console.WriteLine(s)

将输出

012345

请参阅MSDN上的Pad a Number with Leading Zeros

顺便说一下,不知道为什么你担心保持领先的零而“作为一个双重”。双精度只是一个双倍,显示格式无关紧要。 0123与123相同,否则您应该使用字符串数据类型而不是double。

答案 1 :(得分:0)

尝试这是一个。 您可以将整数num转换为double。

Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged

    Dim num As Integer
    Dim temp As String = ""
    Try
       If Regex.IsMatch(TextBox1.Text, "^[0-9 ]+$") Then
          num = Integer.Parse(TextBox1.Text)
          If num <> 0 then
             TextBox1.Text = num.ToString("D6")
             temp = num
          else
             TextBox1.ReadOnly = False
          End If
          If num.Length = 6 Then
             TextBox1.ReadOnly = True
             TextBox1.BackColor = Color.White
          ElseIf num = 0 Then
             TextBox1.ReadOnly = False
          End If
          TextBox1.SelectionStart = TextBox1.Text.Length
       End If
    Catch ex As Exception
       Msgbox(ex.Message)
    End Try
End Sub