ListViewで条件式を使う方法
Visual Basic 2010でDatasetとListviewを使ってプログラムを作成しています。
DatasetのデータをListviewに表示させるプログラムは下記のコードで完成しました。
*******************************
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
With ListView1
.Columns.Add("date", 40, HorizontalAlignment.Left)
.Columns.Add("no", 40, HorizontalAlignment.Left)
.Columns.Add("住所", 100, HorizontalAlignment.Left)
showlist()
End With
End Sub
Private Sub showlist()
Try
住所TableAdapter.Fill(Kz526DataSet.住所)
Catch ex As Exception
MessageBox.Show(ex.Message, "住所テーブル")
End Try
With Kz526DataSet.住所
For i As Integer = 0 To .Rows.Count - 1
ListView1.Items.Add(.Rows(i)("date"), (i))
ListView1.Items(i).SubItems.Add(.Rows(i)("no"))
ListView1.Items(i).SubItems.Add(.Rows(i)("住所"))
Next
End With
End Sub
************************************
次に、Datasetのデータの内一部だけListviewに表示させることにしました。そのため、テキストボックスを設けて、その日付と同じデータをListviewに表示させます。
テキストボックスを設けて、ボタンをクリックしてデータをListviewに表示させようとしたコードです。
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
With ListView1
.Columns.Add("date", 40, HorizontalAlignment.Left)
.Columns.Add("no", 40, HorizontalAlignment.Left)
.Columns.Add("住所", 100, HorizontalAlignment.Left)
showlist()
End With
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
住所TableAdapter.Fill(Kz526DataSet.住所)
With Kz526DataSet.住所
For c As Integer = 0 To .Rows.Count - 1
If TextBox1.Text = Kz526DataSet.住所.Rows(c)("data") Then
ListView1.Items.Add(.Rows(c)("date"), (c))
ListView1.Items(c).SubItems.Add(.Rows(c)("no"))
ListView1.Items(c).SubItems.Add(.Rows(c)("住所"))
End If
Next
End With
End Sub
***************************************
このコードでは、条件式とListViewの関係がいまくいきません。エラーメッセージは次の様に表示されます。
「'3' の InvalidArgument=Value は 'index' に対して有効ではありません。
パラメーター名: index」
いろいろ試行錯誤してみましたところ、「ListView1.Items(c).SubItems.Add(.Rows(c)("no"))」のところで止まります。
if文では、Thenのあとは1行しか書けないのでしょうか。書き方をご指導ください。
お礼
おお 複数で帰ってくるのですね それがわからなかったのです 出来ました [0]で取得しました ありがとうございます。 又何かあればよろしくお願い致します