tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板) [ツリー表示へ]   [Home]
一括表示(VB.NET VB2005)
タイトルCheckedListBoxについて
記事No1480
投稿日: 2005/03/16(Wed) 19:57
投稿者さち。
[OSのVer]:Windows xp   [VBのVer]:VB.NET(Shrap Develop)
皆さんいつもありがとうございます。
またつまづいてしまいました。
「削除」ボタンを押すことでcheckedListBoxにチェックが入ったものを
リストから削除したいと思ってます。 そこで
色々調べて(調べ方が悪いようでいつもご迷惑おかけしてます)↓のようなコードを
書いてみたのですがうまくいきません。
ご存知の方がいらしたら教えてください。
よろしくお願いします。

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Dim i As Integer
For i = 0 To CheckedListBox1.Items.Count - 1
CheckedListBox1.CheckedItems(i).Items.Remove
Next i
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
CheckedListBox1.Items.Remove(CheckedListBox1.CheckedItems)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
CheckedListBox1.CheckedItems.Remove
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++                      
Dim i As Integer
For i = 0 To checkedListBox1.CheckedItems.Count - 1
checkedListBox1.Items.RemoveAt(checkedListBox1.CheckedItems.item(i).Remove)
Next i
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

この他にも色々やってみたんですが・・・
すみません、チカラ不足です。
やりたいこと伝わりますでしょうか。
よろしくお願いしますm(._.)m


  

[ツリー表示へ]
タイトルRe: CheckedListBoxについて
記事No1481
投稿日: 2005/03/16(Wed) 21:00
投稿者花ちゃん
> For i = 0 To CheckedListBox1.Items.Count - 1

これでは削除するたびにインデックスが変ってしまうので、逆に大きい方から
小さい方に向かって削除するようにして見てください

For i = CheckedListBox1.Items.Count - 1 To 0 step -1

[ツリー表示へ]
タイトルRe^2: CheckedListBoxについて
記事No1482
投稿日: 2005/03/16(Wed) 21:57
投稿者さち。
[OSのVer]:Windows    [VBのVer]:VB.NET   sharp develop

花さんありがとうございます。
「削除するたびにインデックスが変ってしまう」がどういうこと(実際データがどうなってるか
がわからなかったのですが)かわからなかったのですが
おっしゃるとおり

Dim i As Integer

For i = CheckedListBox1.Items.Count - 1 To 0 step -1
  checkedListBox1.Items.RemoveAt(checkedListBox1.CheckedItems.item(i).Remove)
Next

のようにしてみたのですが
↓のエラーメッセージが出てきます。

Index was outside the bounds of the array.


これはどういうことなのでしょうか
遅い時間まですみません
明日でもかまいません
よろしくお願いします。

余談ですが、花さん風邪ひいてませんか?
私は声がらがらで熱が8度あります。
季節の変わり目です
気をつけてください。

[ツリー表示へ]
タイトルRe^3: CheckedListBoxについて(変更)
記事No1483
投稿日: 2005/03/16(Wed) 22:38
投稿者花ちゃん
下記ではどうでしょうか?

        For i As Integer = CheckedListBox1.CheckedIndices.Count - 1 To 0 Step -1
            CheckedListBox1.Items.RemoveAt(CheckedListBox1.CheckedIndices(i))
        Next

# こちらの方が総当りせずとも削除できますので前のサンプルを変更しておきます。

[ツリー表示へ]
タイトルRe^4: CheckedListBoxについて(変更)
記事No1484
投稿日: 2005/03/17(Thu) 10:14
投稿者さち
[OSのVer]:Windows    [VBのVer]:VB.NET  

花さん有り難うございます。
頂いたコードでうまくいきました。
まだ理解できてないのですが
もうすこし調べてみます。
ありがとうございました。

> 下記ではどうでしょうか?
>
>         For i As Long = CheckedListBox1.CheckedIndices.Count - 1 To 0 Step -1
>             CheckedListBox1.Items.RemoveAt(CheckedListBox1.CheckedIndices(i))
>         Next

[ツリー表示へ]