0

私は次のコードを持っています

files = di.GetFiles("*.jpg");
for (int i = 0; i < files.Length; i++)
{
   il.Images.Add(System.Drawing.Image.FromFile(folder + "\\" + files[i].Name));
   lv.Items.Add(files[i].Name, i);
}

コードは、System.Windows.Forms.ImageListにjpgファイルの画像を入力します。また、各アイテムがイメージリスト内の画像に関連付けられているSystem.Windows.Forms.ListViewを作成します。

ファイルを小さくして、コードを最適化しようとしました。それでも、290〜30k jpgファイル(またはその他の形式)では3秒未満になりません。

リストビューをロードするためのより良い方法はありますか?

4

2 に答える 2

4

ListViewのBeginUpdate/EndUpdate呼び出しでコードをラップします。

于 2010-08-15T22:32:54.403 に答える
2

簡単な変更の1つは、これを変更することです。

folder + "\\" + files[i].Name

これに:

files[i].FullName

forループの代わりにforeachループを使用することもできます。

foreach (FileInfo file in files)
{
   il.Images.Add(System.Drawing.Image.FromFile(file.FullName));
   lv.Items.Add(file.Name, i);
}

また、ListViewは、バインドモードまたは非バインドモードのいずれかで機能します。アンバウンドモードを使用しています。バウンドモードを使用する方がクリーンな場合があります。

于 2010-08-15T22:08:16.083 に答える