リストボックスの項目の操作で悩んでいます。
一般的な手法が分からないので試行錯誤のすえに書いたものですが、
全ての項目を参照したい時には以下のソースでとりあえず出来ました。
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 での開発です。
ツイート | ![]() |