ListBox の項目の操作について


わからーん  2002-10-26 02:15:50  No: 105272

リストボックスの項目の操作で悩んでいます。

一般的な手法が分からないので試行錯誤のすえに書いたものですが、
全ての項目を参照したい時には以下のソースでとりあえず出来ました。

  Dim index As Object
  For Each index In ListBox.Items
    'ここでそれぞれの項目の参照や操作を行う
  Next

しかし、SelectionMode プロパティを Multi にしたとき、。
選択した項目の全てを参照したい場合に使っている方法が下なんですが。

  Dim index As Object
  Do While ListBox.SelectedItem <> ""
    For Each index In ListBox.SelectedIndices
      ListBox.Items.RemoveAt(index)
    Next
  Loop

上と同じ考え方で For Each Next だけで選択した項目の全てが RemoveAt されると
思うんですが、なぜか中途半端に小分けする。
そのため Do Loop を用いて選択項目が残っていたらこの文を繰り返すというなんとも
見苦しい方法を使ってますが、もっとスマートな方法があるのではないかと・・・

というか、そもそも1行目の Object ってのから怪しくて。上も下も。
一番困ったのは、SelectedIndices がどうやって Index 情報をもっているか、
全然分からん。^^; 
Index の配列にしてくれれば楽なのに・・・動的だから駄目なのかなぁ。

OS が 2000、VB.NET での開発です。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加