酢ろぐ!

カレーが嫌いなスマートフォンアプリプログラマのブログ。

画像ビューアっぽいものを作ってみた。 その5

次に呼び出し側。フォームのロードイベントにListBoxExにrowを追加する処理を実装します。

ListBoxExRowPictureとPictureInfoを20個作って、Dictionaryで管理します。これはダウンロードが完了したらどのrowの画像を更新すれば良いかを検索する為。

    public partial class Form1 : Form
    {
         // 〜省略〜

        Dictionary<PictureInfo, ListBoxExRow> list 
            = new Dictionary<PictureInfo, ListBoxExRow>();

        private void Form1_Load(object sender, EventArgs e)
        {
            for (int i = 0; i < 20; i++)
            {
                ListBoxExRow row = new ListBoxExRowPicture("テスト画像");
                listBoxEx1.AddItem(row);

                PictureInfo info
                    = new PictureInfo("テスト画像", "http://image.rakuten.co.jp/diet/cabinet/c/18119-main02.jpg");

                list.Add(info, row);

                DownLoadPictureThread thread = new DownLoadPictureThread(info);
                thread.DownloadComplate += new EventHandler(thread_DownloadComplate);
                thread.Start();
            }
        }

1行追加する度にスレッドを起して、画像のダウンロードを開始しています。ダウンロードが完了したらthread_DownloadComplateメソッドに通知が行きます。