使用 ListView 进行文本验证

Text Validation with ListView

我目前正在尝试弄清楚如何在列表视图插入方面验证我的文本框。文本框在下面声明为字符串。

   Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Dim Col1 As String = TextBox1.Text
        Dim Col2 As String = TextBox2.Text
        Dim col3 As String = TextBox3.Text
        Dim col4 As String = RichTextBox2.Text
        Dim col5 As String = DateTimePicker1.Text
        Dim col6 As String = DateTimePicker2.Text
        Dim col7 As String = RichTextBox2.Text
        If Col1 Or Col2 Or col3 Or col4 Or col5 Or col6 Or col7 = "" Then
            MessageBox.Show("Please fill in any missing field. Remember and select a date in both date fields!")
            Exit Sub
        Else
            Dim lvi As New ListViewItem
            lvi.Text = Col1 'Adds to First column
            lvi.SubItems.Add(Col2)
            lvi.SubItems.Add(col3)
            lvi.SubItems.Add(col4)
            lvi.SubItems.Add(col5)
            lvi.SubItems.Add(col6)
            lvi.SubItems.Add(col7) 'Adds to Second column
            ListView1.Items.Add(lvi)
        End If
    End Sub

它只是从字符串(文本框)中获取数据并将它们按列表视图的顺序排列table。我依赖于其中包含某种数据的每个文本框。如果缺少一个字段,table 中的每一列都会向左移动,如果你明白我的话?有没有一种可能的方法来验证然后提出条件。我试过做一个,但我对 VB 没有太广泛的了解,所以我觉得它行不通。

您的代码有很多 问题。您应该做的第一件事是将 Option Strict 编译器选项设置为 On。 (阅读"To set Option Strict in the IDE"部分)

VS 将突出显示 Col1Col2,并显示以下错误消息:

Option Strict On disallows implicit conversions from 'String' to 'Long'

此时您应该转到 MSDN 并查看 Or Operator.

的文档

<Boolean> result = <Boolean> expression1 Or <Boolean> expression2

如您所见,LHS 和 RHS 参数都需要是布尔值。

Dim result As Boolean = (Col1 = "") Or (Col2 = "")

所以你需要为每个表达式重复这个。

If Col1 = "" Or Col2 = "" Or col3 = "" Or col4 = "" Or col5 = "" Or col6 = "" Or col7 = "" Then

另一种选择是将控件存储在数组中并使用 Any 扩展方法。

Dim controls As Control() = {
    TextBox1,
    TextBox2,
    TextBox3,
    RichTextBox2,
    DateTimePicker1,
    DateTimePicker2,
    RichTextBox2
}

If (controls.Any(Function(c As Control) c.Text = "")) Then
    'Display error message

此外,请注意 validate user input in winforms is to handle the Validating and Validated 事件的常用方法。