#vb.net #loops #graphics #concatenation #draw
Вопрос:
У нас проблема с нашим управлением WinForms.
Мы извлекаем список изображений (изображений пользователей) в каждом цикле и добавляем их в наш элемент управления списком. Он извлекает изображения с помощью класса с HttpClient, который считывает URL-адреса, считанные из базы данных в Form1 (с помощью метода Add ()), и отправляет их обратно, преобразовав в тип изображения, в качестве пары значений ключей.
Dim imageData As Byte() = Await client.Value.GetByteArrayAsync(url).ConfigureAwait(False)
Return New KeyValuePair(Of Integer, Image)(pos, DirectCast(New ImageConverter().ConvertFrom(imageData), Image))
Теперь это отлично работает и отображает изображение в нашем listcontrol, но только для одного изображения. Оба изображения на самом деле есть (наша ключевая пара). Но больше 1 не отображается в поле зрения.
На форме 1 Мы заполняем список для нашего элемента управления listcontrol и его параметров.
For Each row As DataRow In transferstable.Rows
ListControl1.Add(name, title, username, ResizeImage(avatar(count)), info, address, 0)
Next
Класс возвращает изображения и называется «аватар».
ResizeImage(avatar(count))
Это не приведет к отображению 2 возвращенных изображений, они есть, как мы можем подсказать, в списке URL-адресов или видят, что это коллекция списков, похоже, рисунок перекрывается??
Находятся ли 2 изображения точно друг на друге?
Они нарисованы в нашем классе listcontrolitem следующим образом
Private Sub Paint_DrawButton(gfx As Graphics)
gfx.DrawImage(mAvatar, New RectangleF(70, 50, 17, 17))
Это GDI , который не доставляет ни одного изображения и допускает строку (например, html-шаблон)?
Я не знаю, как нарисовать это в виде строки и исключить любое перекрытие.
Как получилось, что это происходит?
Может быть, лучше просто отправить эти изображения в коробку с картинками (чтобы я мог также разместить их в конструкторе)?
Любая помощь будет признательна!
Редактировать
Было бы неплохо отправить пару значений ключа в ImageList1, что позволит нам просто прочитать это вместо отдельных звезд для контроля рейтинга (правая сторона элемента управления). Тоже непросто.
Star1.Image = ImageList1.Images(IIf(mStars >= 1, "full", "empty"))
Комментарии:
1. «Они рисуют друг на друге» — ну, вы всегда рисуете их с помощью прямоугольника с одинаковыми координатами, но я не могу сказать, к чему относятся координаты. Почему бы вам временно не замедлить рисование, поставив задачу ожидания. Задержка(1000); в каждом вызове и видите?