Пишу для себя небольшую программку. Появилась проблема с imageList. Ближе к делу: прога принимает картинку с сервера в формате base64 дешифрует и вставляет в listview таким образом.
Image im = Base64ToImage(base64);
imageList1.Images.Add(im);
listView1.SmallImageList = imageList1;
listView1.LargeImageList = imageList1;
listView1.Items.Add(new ListViewItem
{
ImageIndex = id,
Text = " " + location.Split('-')[1]
});
Картинка добавляется все ок. Выглядит вот так:
Но! Как быть если я хочу удалить строку? Вернее даже не строку а картинку. Строку удаляю вот так:
listView1.Items.RemoveAt(id);
Но картинка остается в image list. Её удаляю так:
imageList1.Images.RemoveAt(id);
И теперь самое забавное. Как бы в imageliste картинки то уже и нету но в listview она по прежнему отображается. Например:
Жмякаю удалить. С imagelist удаляется последняя картинка, но в listview ничего не меняется. Жмякаю удалить. С imagelist удаляется предпоследняя картинка, но в listview ничего не меняется. Жмякаю удалить. С imagelist удаляется первая картинка(последняя в imagelist), в listview не остается ни одной картинки :(
Почему так происходит? Как правильно удалять? Подскажите куда копать. Гугл гуглил но про Remove там мало инфы.
public void Refresh(int id)
{
int c = _clientSockets.Count - 1;
for (int i = 0; i < c; i++)
{
listView1.Invoke((MethodInvoker)delegate { listView1.Items[i].SubItems[1].Text = i.ToString(); listView1.Items[i].ImageIndex = i + 1; });
}
listView1.Invoke((MethodInvoker)delegate { imageList1.Images.RemoveAt(id); });
for (int i = 0; i < c; i++)
{
listView1.Invoke((MethodInvoker)delegate { listView1.Items[i].ImageIndex = i; });
}
}
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Я немного запутался, вот есть два куска кода, в котором в одном из них поле помечено модификатором static -значит оно глобальное и объявлено...
Есть следующая задача: Приложение A посылает приложению B данныеПриложение B эти данные получает и уведомляет приложение A, после чего осуществляет...