2015-02-07 37 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