Показать изображения в ListView - PullRequest
0 голосов
/ 13 декабря 2018

Я хочу загрузить все изображения в файле и показать их в ListView (количество изображений составляет приблизительно 3000).Есть некоторые проблемы с выводом изображения.

  1. Программа некоторое время умирает во время печати изображения.

    • Я использую Thread, но проблема по-прежнемуне исправлено.
  2. Теперь программа загружает все изображения и выводит их сразу в ListView.

    • Я хочу распечатать его немедленнопосле загрузки.
  3. Если переместить полосу прокрутки изображения, изображение некоторое время будет белым, но если я остановлю полосу прокрутки, оно будет напечатано правильно.

Как можно плавно вывести изображение, не становясь белым?

private void button2_Click(object sender, EventArgs e)
{
    FolderBrowserDialog folder = new FolderBrowserDialog();

    if(folder.ShowDialog() != DialogResult.OK)
    {
        return;
    }

    List<string> files = new List<string>();

    files.AddRange(Directory.GetFiles(folder.SelectedPath, "*.bmp"));

    ImageList img = new ImageList();
    img.ImageSize = new Size(160, 130);

    for (int index=0; index <files.Count; index++)
    {
        Image Im = Image.FromFile(files[index]);
        img.Images.Add(Im);
    }

    Thread thread = new Thread(new ThreadStart(delegate () 
    {
        this.Invoke(new Action(delegate () 
        {
            for(int index=0; index < files.Count; index++)
            {
                listView1.LargeImageList = img;
                listView1.Items.Add(files[index], index);
            }
        }));
    }));
    thread.Start();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...