【问题标题】:Check for Textboxes with String value检查具有字符串值的文本框
【发布时间】:2012-10-22 06:42:31
【问题描述】:

我要做的就是检查带有字符串值的文本框,如果是,那么消息框会显示(使用数字)。

    For Each t In Me.Controls
        If TextBox1.Text = (String) Then
            MsgBox("Please Use Number")
            Exit Sub
            Exit For
        End If
    Next

提前致谢

【问题讨论】:

  • 假设由于您使用的是MsgBox,因此您正在构建一个 WinForms 应用程序,但如果您添加适当的标签会更清晰。 .NET 框架中有许多不同的控件,它们属于不同的技术栈,其中每一个都被命名为TextBox。解决问题的最佳方法可能因人而异。
  • 这是一个陈述而不是一个问题......无论如何,1.您需要将 t 类型转换为文本框。 2. TextBox1.Text 应该是.Text。 3. if 语句应该检查它是一个数字,而不是一个字符串。它永远是一个字符串。

标签: vb.net textbox foreach msgbox


【解决方案1】:

从您的错误消息中,我假设您想要验证用户输入了一个数值。然后您可以使用Int32.TryParseDouble.TryParse 或简单地枚举所有字符并检查它们是否为数字:

For Each txt In Me.Controls.OfType(Of textBox)()
    Dim allDigit = txt.Text.Trim.Length <> 0 AndAlso _
            txt.Text.All(Function(chr) Char.IsDigit(chr))
    If Not allDigit Then
        MsgBox("Please Use Number")
        Exit Sub
    End If
Next

Int32.TryParse:

Dim intVal As Int32
Dim isInteger As Boolean = Int32.TryParse(txt.Text, intVal)

(假设您还想验证表单上的所有文本框)

【讨论】:

    【解决方案2】:

    给你:

    For Each c As Control In Me.Controls
        If TypeOf (c) Is TextBox Then
            If Not IsNumeric(c.Text) Then
                MessageBox.Show("Not a number")
                Exit Sub
            End If
        End If
    Next
    

    【讨论】:

      【解决方案3】:

      使用正则表达式验证文本框是否包含数字。

      例如。

      Dim regNumber As New Regex("^\d{1,10}$")
      regNumber.IsMatch(TextBox1.Text)
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-09-21
        • 1970-01-01
        • 1970-01-01
        • 2021-03-04
        • 2022-08-12
        • 1970-01-01
        • 1970-01-01
        • 2016-11-05
        相关资源
        最近更新 更多