タイトル : ListViewコントロールの行番号を取得するときにエラーになる 投稿日 : 2008/09/03(Wed) 13:41 投稿者 : pencil
よろしくお願いします。 ListView1_SelectedIndexChangedイベントが起こったときに、その行番号を取得しようとしています。(下記コード) Private Sub ListView1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ListView1.SelectedIndexChanged Dim k As Integer k = ListView1.SelectedIndices(0) + 1 MsgBox(k) End Sub 1番最初の実行時は行番号を表示しますが、もう一度別の項目を選ぶとエラーになります。 エラー内容: ArgumentoutofRangeExceptionはハンドルされませんでした。 '0' の InvalidArgument=Value は 'index' に対して有効ではありません。 パラメータ名: index 2行目の代入するところでエラーになります。 ところが、同じ処理を、フォーム上に配置したボタンコントロールより行うと、エラーは出ません。(下記コード) Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click Dim k As Integer k = ListView1.SelectedIndices(0) + 1 MsgBox(k) End Sub どうしてエラーになってしまうのかわかりません。 よろしくお願いします。 (全コード) Public Class Form1 ' Private Sub ListView1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ListView1.SelectedIndexChanged Dim k As Integer k = ListView1.SelectedIndices(0) + 1 MsgBox(k) End Sub 'リストビューに項目を設定 Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click ListView1.Items.Clear() Dim item1() As String = {"リンゴ", "果物", "赤"} ListView1.Items.Add(New ListViewItem(item1)) Dim item2() As String = {"メロン", "果物", "緑"} ListView1.Items.Add(New ListViewItem(item2)) Dim item3() As String = {"ピーマン", "野菜", "緑"} ListView1.Items.Add(New ListViewItem(item3)) End Sub 'ボタンコントロールを押すと、選択された行の行番号を表示 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim k As Integer k = ListView1.SelectedIndices(0) + 1 MsgBox(k) End Sub End Class |