タイトル | : ListViewコントロールの行番号を取得するときにエラーになる |
記事No | : 8066 |
投稿日 | : 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
|