我如何比较数字并添加或删除一些数字?

时间:2019-05-08 21:16:58

标签: vb.net

我在比较数字时遇到问题。

我有一个文本框。我想要vb代码,当我在文本框中输入任何数字时,请检查它是否具有15位数字。如果更多,请从末尾删除数字,直到达到15位数。

如果少于,请在末尾加0,直到达到15位。并将结果写入另一个文本框中。

1 个答案:

答案 0 :(得分:0)

尝试一下

Private Sub TextBox1_KeyUp(sender As Object, e As KeyEventArgs) Handles TextBox1.KeyUp
    Dim SelStart As Integer = TextBox1.SelectionStart
    TextBox1.Text = TextBox1.Text.PadRight(15, "0"c).Substring(0, 15)
    TextBox1.Select(SelStart, 0)
End Sub

编辑- 要解决一个负数,您将必须检查“-”的存在,并允许使用16个字符而不是15个字符。此外,您将希望取消显示非数字键,此外,您只希望允许“-”仅在第一位置。 一切可能看起来像这样:

Private Sub TextBox1_KeyDown(sender As Object, e As KeyEventArgs) Handles TextBox1.KeyDown

    Dim AllowedKeys() As Keys = {49, 50, 51, 52, 53, 54, 55, 56, 57, 48, 189, 97, 98, 99, 100, 101, 102, 103, 104, 105, 96, 109, 8, 46}
    If Not AllowedKeys.Contains(e.KeyData) Then e.SuppressKeyPress = True
    If TextBox1.SelectionStart > 0 AndAlso (e.KeyData = 109 Or e.KeyData = 189) Then e.SuppressKeyPress = True

End Sub

Private Sub TextBox1_KeyUp(sender As Object, e As KeyEventArgs) Handles TextBox1.KeyUp

    Dim SelStart As Integer = TextBox1.SelectionStart
    TextBox1.Text = If(TextBox1.Text.Substring(0, 1) = "-",
        TextBox1.Text.PadRight(15, "0"c).Substring(0, 15),
        TextBox1.Text.PadRight(16, "0"c).Substring(0, 16))
    TextBox1.Select(SelStart, 0)

End Sub