masat21です。現在、リストビューから項目(Item)を選択し、その項目をRemoveAt()で削除する処理について検討しています。RemoveAt()の引数に、選択したリストのIndexを渡すものであると想像できますが、引数にすべきIndexの値を取得する方法がわかりません。上記Indexの値を取得する方法についてご教示願います。
ListView1.SelectedIndices コレクションを調べてみてください。たとえば、ひとつだけの選択であるなら、(MultiSelect プロパティが false) Dim i As Integer i = ListView1.SelectedIndices(0)
こんにちは、masat21です。下記のようにして確認してみた結果、思い通りの処理になっていました。ありがとうございます。> ListView1.SelectedIndices コレクションを調べてみてください。> > たとえば、ひとつだけの選択であるなら、(MultiSelect プロパティが false)> Dim i As Integer> i = ListView1.SelectedIndices(0)
いつもお世話になっております。環境はVS.NET2002 WIN2000 です。便乗質問になり大変申し訳御座いません。私もこのスレッドに興味があり、2日間調べていたのですが解決できませんでした。HELPを見る限りIndexOf メソッドを使用するものかと、、、、下記のコードをダブルクリックイベントに貼り付けて実行してみたのですがきちんと動きます。SelectedIndicesプロパティで取得できるんだろうなとは思っていたのですが、引数が0なのに何故1のインデックスや2のインデックスを取得できるのか調べているのですが分かりません。(変数に入れたときと同じ動作をしています。)ちなみに引数を変更するとエラーが発生します。Countプロパティ以上になるので当たり前ですが、、、もしよろしければ引数0の意味が分かる方教えていただけないでしょうか。宜しくお願い申し上げます。 > > ListView1.SelectedIndices コレクションを調べてみてください。> > > > たとえば、ひとつだけの選択であるなら、(MultiSelect プロパティが false)> > Dim i As Integer> > i = ListView1.SelectedIndices(0)
> 引数が0なのに何故1のインデックスや2のインデックスを取得できるのか調べているのですが分かりません。え〜とですね。まず、用語の統一から。「引数が0」と書かれていますが、これは関数やメソッドではないので引数ではないです。SelectedIndices プロパティというのは 「選択されたインデックス」が保存されている コレクション(配列)を返すものです。配列の(0)とかもインデックスと言いますが、まぎらわしいのでここでは日本語で「添字」と呼びます。配列なので、選択されているのが「1個」だけなら、(配列は0から始まるので)かならず「0番目」の添字に選択されたインデックスが入ってくるということです。MultiSelect プロパティが True になっている場合(複数の行が選択できる場合)は配列の添字 選択されたインデックス(0) <- 5(1) <- 7(2) <- 9(例として 5番目 7番目 9番目の行が選択されているとき)のように配列に選択されたインデックスが格納されるということです。こんな感じですがご理解いただけたでしょうか?
NAOさん現在自宅のPCよりアクセスしておりますのでIP違いますが申し訳ありません。あまり時間が経つと失礼ですので取り急ぎお礼申し上げます。丁寧に解説頂きまして誠にありがとうございます。>>SelectedIndices プロパティというのは 「選択されたインデックス」が保存されている コレクション(配列)を返すものです。なるほどです。コレクションを扱うプロパティやメソッドと考えれば納得できます。凄く分かりやすい説明で理解できました。表記「引数」に関しては誤っておりました。大変失礼いたしました。プロパティの添字の型がInterger型でしたので直感的にVB6と同等にINDEXだと思って訳が分からなくなったようです。 →SelectedIndices(添字 AS Interger)根本的に考え方を変えないと理解できないですね、、、、汗配列の概念は0からですので確かに0です。>>MultiSelect プロパティが True になっている場合(複数の行が選択できる場合)この場合は先にCOUNTプロパティを調べて、リストの数だけ配列を用意すれば全てSELECTされているのを取得できそうですね^_^自宅のPCは.NETがインストールされていないので明日実験してみます。.NET購入したはいいですけどハードル高いなぁ!!って思っておりましたが、ひとつひとつ理解すればかなり凄そうですね。(まだまだ勉強中ですが、、、)今後も精進いたします。本当に勉強になりました。ありがとうございました。