2015-02-07 76 views
0

我目前正在试图弄清楚如何验证我的文本框方面的列表视图插入。文本框在下面声明为字符串。与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 

它只是从字符串(文本框)中获取数据并将它们按列表视图表的顺序排列。我依赖于每个文本框中都有某种数据。如果有一个字段缺失,如果你找到我,表格中的每一列都向左移动?有没有一种可能的方式来验证,然后制定一个条件。我试图做一个,但我没有在VB中过度广泛的知识,所以有一种感觉它不会工作。

+0

您应该(也)将其分解为2种方法:一种执行数据验证,一种添加到LV。 '如果有一个字段丢失,表中的每一列都移动到左边'您可能不想这样做或者您的代码不会知道任何给定行的每列中的内容 – Plutonix 2015-02-07 13:13:39

回答

1

还有很多与您的代码问题。您应该做的第一件事是将Option Strict编译器选项设置为On。 (读取部“设置选项在IDE严格”)

VS会然后突出Col1Col2与以下错误消息:

选项严格On不允许从“STRING”的隐式转换以“龙”

此时,你应该头向MSDN和看的Or Operator的文档。

<布尔>结果= <布尔>表达式或者<布尔>表达式2

正如你可以看到,无论是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常见的方法是处理ValidatingValidated事件。

+1

非常感谢Bjørn-RogerKringsjå。工作过一种享受! – 2015-02-08 21:15:37