DOBON.NET DOBON.NETプログラミング掲示板過去ログ

llistviewのチェックされた情報の取得

環境/言語:[winxp VC++.net 2003]
分類:[.NET]

はじめまして。
今回質問させていただきたいのは
listViewで作成した項目にチェックボックスをつけ、チェックしている項目の情報取得になります。
サンプルソースなどを見て以下のように書き換えましたが、コンパイルが通りません。


private: System::Void button5_Click(System::Object *  sender, System::EventArgs *  e)
         {
             if(listView1->CheckedItems->Count != 0)
             {
                 //処理を記述
                   for(int x = 0; x <= listView1->CheckedItems->Count - 1; x++)
                     {
                         Debug::WriteLine(listView1->CheckedItems[x]->ToString());

                      }

             }
         }

エラーは
error C2845: '[' : __gc ポインタ 'System::Windows::Forms::ListView::CheckedListViewItemCollection __gc *' に対してポインタ演算ができません。

error C2227: '->ToString' : 左側がクラス、構造体、共用体へのポインタではありません。

と出ます。
上記ソースコードのlistView1->CheckedItems[x]->ToString()の
CheckedItems[x]が悪いのだろうと思い、CheckedItemsと書き換えました。
コレでは思ったような動作をしてくれないので困っています。
どなたかご教授ください。
追記ですが
listView1->Items->Clear();
CFileFind finder;
BOOL bWorking = finder.FindFile("C:\\test\\*");
    while (bWorking)
    {
        bWorking = finder.FindNextFile();
               // "."か".."の場合。
        if(finder.IsDots()){
                 continue;
        }
         if(finder.IsDirectory() != FALSE){ 
            String *foldername = finder.GetFileName();
            listView1->Items->Add(foldername);
         }

    }
としてフォルダを登録しています。
よろしくお願いします。
// Managed C++ はさすがにあんまり記憶に無いな
ListView::CheckedItems が返すのは ListView::CheckedListViewItemCollection オブジェクトです。
配列ではありませんので [ ] 演算子は使えません。Item 引数つきプロパティを使用してください。
■No22256に返信(Hongliangさんの記事)
> // Managed C++ はさすがにあんまり記憶に無いな
> ListView::CheckedItems が返すのは ListView::CheckedListViewItemCollection オブジェクトです。
> 配列ではありませんので [ ] 演算子は使えません。Item 引数つきプロパティを使用してください。

返事ありがとうございます。
いろいろ探ってみたところ下記のソースコードで内容を取得することができました。
private: System::Void button5_Click(System::Object * sender, System::EventArgs * e)
{
if(listView1->CheckedItems->Count != 0)
{
//処理を記述
for(int x = 0; x <= listView1->CheckedItems->Count - 1; x++)
{
Debug::WriteLine(listView1->Items->get_Item(listView1->CheckedIndices->get_Item(x)));



}

}
}

探すのに苦労しました。
教えてくれてありがとうございました!
解決済み!

DOBON.NET | プログラミング道 | プログラミング掲示板