Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > .NET для новичков > динамически добавить катинки в imageList


Автор: NilovSerge 12.2.2008, 14:47
На форме есть кнопка с привязанным imageList с некоторыми картинками Мне надо програмно загрузить в кнопку картинку 
с диска в и зависимости от условия картинка будет меняться

Делаю так:
Код

Mylabel.ImageKey = this.SelectOrAddImage(ImageIconName); 

    private string SelectOrAddImage(string ImageIconName)
    {
      foreach (Image Im in imageList1.Images)   // Не хочется одну картинку загружать несколько раз - поэтому пытаюсь
      {                                         // сначала проверить что ImageIconName уже загружен
        if (imageList1.Images.Keys.ToString() == ImageIcon) // ПРОБЛЕМА №1 - я не нашел как достучаться до имени картинки в списке
        {                                                   // imageList1.Images - в отладчике есть массив data но он unpublic - 
          return ImageIconName;                             // ToString() - возвращает тип обьекта - а не имя
        }
      }
      imageList1.Images.Add(Image.FromFile(ImagesDir + ImageIconName));  // В отладчике вижу что обьект добавлен но в массиве data он пуст

      return imageList1.Images[imageList1.Images.Count-1].ToString();  // ToString() - возвращает тип обьекта - а не имя
    }


Может это нужно иначе делать?


      Заранее спасибо.

Автор: Kefir 12.2.2008, 15:22
1. Отформатируй код.
2.
Код

        private string SelectOrAddImage(string ImageIconName)
        {
            if (!imageList1.Images.ContainsKey(ImageIconName))
                imageList1.Images.Add(ImageIconName, Image.FromFile(ImagesDir + ImageIconName));
            return ImageIconName;
        }

3. Image насколько я помню не содержит никаких путей к файлам, так как они вообще-то не относятся никаким боком к понятия "картинка".

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)