- PR -

【Windows】vb.net ListViewのチェックボックス

1
投稿者投稿内容
大ベテラン
会議室デビュー日: 2003/09/16
投稿数: 193
お住まい・勤務地: 千葉県
投稿日時: 2007-08-16 15:09
お世話になっております

 入力支援にて
 ListView 内の2行目のチェックボックスにチェックを
 入れたら、自動的に3行目もチェックした事にする
 って仕様があるのですが
 ListView の CheckBoxes をTrueにして
 CheckedItems 内を操作しようと思ったら ReadOnlyのプロパティにて
 動的な変更が 出来なかったのですが
 実現させるための 知恵をご教授ください

 よろしくお願い致します

ぶさいくろう
ぬし
会議室デビュー日: 2005/11/22
投稿数: 1232
お住まい・勤務地: 川崎市(は俺も含めてロクな人間が住んでないよw)
投稿日時: 2007-08-16 15:30
ごめん、意味がわからなかったので詳しい説明をしてほしいなぁ。
特にReadOnlyあたり。省略されすぎて何がダメなのかわからない。
大ベテラン
会議室デビュー日: 2003/09/16
投稿数: 193
お住まい・勤務地: 千葉県
投稿日時: 2007-08-16 15:49
引用:

ぶさいくろうさんの書き込み (2007-08-16 15:30) より:
ごめん、意味がわからなかったので詳しい説明をしてほしいなぁ。
特にReadOnlyあたり。省略されすぎて何がダメなのかわからない。



すみません
コード:
        Dim ni As Integer
        Dim i As Integer
        With Me.ListView1.CheckedItems
            If .Count <> 0 Then
                ni = .Count
                For i = 0 To .Count - 1
                    If .Item(i).Index = 2 Then  ''' 2行目にチェックがあったら
                        .Item(ni).Index = 3    ''' 3行目もチェックしたことにする ←readonly のため不可能
                    End If
                Next i
            End If
        End With


こんなことをやってみたのですが
CheckedItems.item(ni).Index は ReadOnlyなので変更不可 というシンタックスエラー
になります



べる
ぬし
会議室デビュー日: 2003/09/20
投稿数: 1093
投稿日時: 2007-08-16 16:53
CheckedItemsがどんなものか理解してますか?Withを使わずに書いてみてください。おかしいことに気づくはずです。で、CheckedItems使う必要がない気がします。単純に
「ListView1.Items(2).Checked」だったら「ListView1.Items(3).Checked」にする
じゃだめですか?
大ベテラン
会議室デビュー日: 2003/09/16
投稿数: 193
お住まい・勤務地: 千葉県
投稿日時: 2007-08-16 17:26
引用:

べるさんの書き込み (2007-08-16 16:53) より:
CheckedItemsがどんなものか理解してますか?Withを使わずに書いてみてください。おかしいことに気づくはずです。で、CheckedItems使う必要がない気がします。単純に
「ListView1.Items(2).Checked」だったら「ListView1.Items(3).Checked」にする
じゃだめですか?



チェックされた行の一覧に拘ってました
ListView1.Items(2).Checked で チェックボックスの状態が判断できたのですね

コード:
        If flg = True Then
            flg = False
            Exit Sub
        End If

        If e.Index = 1 And e.NewValue = CheckState.Checked Then   ''' 1行目にチェックがあったら
            flg = True
            ListView1.Items(0).Checked = True                     ''' 0行目もチェックしたことにする 
        End If



で実現できました
ありがとうございました m(__)m

1

スキルアップ/キャリアアップ(JOB@IT)