两段代码 老师给的

给一个文本框,只能输入数字、小数点和负号,其他的按键输入将不显示。

 

1.普通程序代码控制

Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress
        Dim c As Char
        c = e.KeyChar
        If c = "."c Then
            If InStr(TextBox1.Text, e.KeyChar) > 0 Or (InStr(TextBox1.Text, "-") > 0) And (TextBox1.SelectionStart = 0) Then
                e.KeyChar = ""
            End If
        ElseIf
c = "-"c Then
            If InStr(TextBox1.Text, c) > 0 Or TextBox1.SelectionStart > 0 Then
                e.KeyChar = ""
            End If
        ElseIf
c = "0"c Then
            If
(TextBox1.SelectionStart = 0 And Not TextBox1.Text.StartsWith("0") And TextBox1.Text.Length <> 0) Or (TextBox1.SelectionStart <= 1 And TextBox1.Text.StartsWith("0")) Then
                e.KeyChar = ""
            End If
        ElseIf c = ControlChars.Back Then
        ElseIf
InStr("123456789", e.KeyChar) <= 0 Then
            e.KeyChar = ""
        End If
    End Sub

 

2.正则表达式控制//正则表达式不对

    Private Sub TextBox2_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox2.KeyPress
        '利用正则表达式验证
        'System.Text.RegularExpressions.Regex.IsMatch(TextBox2.Text, "^(-?\\d+)(\\.\\d+)?$")    ''''该表达式来源与网上,未经证实

    End Sub

//  ^[+-]?(?:\d+\.?\d*|\d*\.?\d+)[\r\n]*$  据说这个是对的。未验证。

 

3.使用MaskedTextBox//不能输入-和。

Mask属性设置的是自定义掩码为999999999999999

 

===============================================

 

将窗体中所有TextBox的text全部清空,其他的CheckBox啊RadioButton啊这些照旧

Private Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim tp As TabPage
        Dim
text As Control

        For Each tp In TabControl1.TabPages
            For Each text In tp.Controls
                If TypeOf text Is TextBox Then
                    text.Text = ""
                End If
            Next
        Next

    End Sub

你可能感兴趣的:(C++,c,windows,正则表达式,C#)