我在比较数字时遇到问题。
我有一个文本框。我想要vb代码,当我在文本框中输入任何数字时,请检查它是否具有15位数字。如果更多,请从末尾删除数字,直到达到15位数。
如果少于,请在末尾加0,直到达到15位。并将结果写入另一个文本框中。
答案 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