3

写真付きのアイテムのリストを作成したいのですが、アイテムの数は 1 ~ 60 までさまざまで、アイテムごとにデータも表示したいと考えています。これを行う最善の方法は、C# で ListView を使用することだと思います。これは本当ですか?もしそうなら、どうすればこれを行うことができますか? スクロールウィンドウ内でインタラクティブな画像を使用することも考えました

4

1 に答える 1

10

デザイナーでこれを行う場合は、次の手順を実行して、イメージを ListView コントロールに追加できます。

  1. デザイナに切り替え、コンポーネント トレイの ImageList コンポーネントをクリックすると、ImageList の右上隅にスマート タグが表示されます。
  2. スマート タグをクリックし、ペインで [イメージの選択] をクリックします。
  3. ポップアップの [画像コレクション エディター] ダイアログで、必要なフォルダーから画像を選択します。
  4. [OK] をクリックして、ImageList への画像の追加を終了します。
  5. フォームの ListView をクリックすると、右上隅にスマート タグが表示されます。
  6. スマート タグをクリックすると、そこに 3 つの ComboBox があることがわかります。リストから必要に応じて ImageList を選択します。
  7. スマート タグの [項目の追加] オプションをクリックすると、ListViewItem コレクション エディターが表示され、ListView に項目を追加できます。ここで ImageIndex または ImageKey プロパティを設定することが重要です。そうしないと、画像が表示されません。
  8. [OK] をクリックして項目の編集を終了すると、ListView に画像が表示されます。

コードで ListView に画像を追加する場合は、次のようにすることができます`

コードスニペット


 private void Form10_Load(object sender, EventArgs e)
    {
        DirectoryInfo dir = new DirectoryInfo(@"c:\pic");
        foreach (FileInfo file in dir.GetFiles())
        {
            try
            {
                this.imageList1.Images.Add(Image.FromFile(file.FullName));
            }
            catch{
                Console.WriteLine("This is not an image file");
            }
        }
        this.listView1.View = View.LargeIcon;
        this.imageList1.ImageSize = new Size(32, 32);
        this.listView1.LargeImageList = this.imageList1;
        //or
        //this.listView1.View = View.SmallIcon;
        //this.listView1.SmallImageList = this.imageList1;

        for (int j = 0; j < this.imageList1.Images.Count; j++)
        {
            ListViewItem item = new ListViewItem();
            item.ImageIndex = j;
            this.listView1.Items.Add(item);
        }
    }

ソース

于 2013-03-12T16:16:57.640 に答える