如何仅使TextBox数字或仅文本

时间:2017-03-03 16:41:28

标签: vb.net

我有一个包含3个文本框和2个按钮的表单。如果填写了所有3个文本框,则启用按钮1.按钮2是退出程序按钮。让我们看看我的文本框代码

Private Sub TextBoxes_TextChanged(
    ByVal sender As System.Object, ByVal e As System.EventArgs) _
    Handles _
        TextBox1.TextChanged,
        TextBox2.TextChanged,
        TextBox3.TextChanged

    Dim textBoxes = {TextBox1, TextBox2, TextBox3}
    Button1.Enabled = textBoxes.All(Function(tb) tb.Text <> "")
End Sub

所以现在我想知道如何将textbox 2的值更改为仅数字,将textbox 1和3的值更改为仅文本。我希望你能理解我的问题。我希望你们能帮助我。

1 个答案:

答案 0 :(得分:-2)

使用KeyPress事件过滤您希望用户能够按下的按键。

例如,仅过滤正数.......

Private Sub TextBox2_KeyPress(sender As Object, e As KeyPressEventArgs) Handles TextBox2.KeyPress
    Dim AllowedKeys As String = "0123456789" & vbBack
    e.Handled = Not AllowedKeys.Contains(e.KeyChar)
End Sub

注意:对于数字,小数点和减号需要特殊处理以确保只有一个并且在正确的位置。

但是,您仍然需要在使用它之前验证该值。它可以设置为其他方式,并且可以始终为空白。

但是,正如Plutinix所提到的,最好使用正确的控件来获取您想要收集的值。例如,数字为NumericUpDown,日期为DatePicker,TEXT为TextBox。