C# TabPage Почему не показывается Image?

335
13 апреля 2017, 15:17

В TabControl Добавляю ImageList

ImageList _imageList = new ImageList(new Container());
_imageList.Images.Add(Resources.alert_16_px);
_imageList.ColorDepth = ColorDepth.Depth32Bit;
_imageList.ImageSize = new Size(16, 16);
TabControl1.ImageList = _imageList;

Затем во вкладке выставляю ImageIndex:

tabPage.ImageIndex = 0;

В результате картинка не отображается, но текст сдвигается как будто должна отобразиться картинка:

Пробовал использовать Image.FromFile("1.jpg") вместо Resources.alert_16_px, пробовал разные картинки, разного расширения - картинка так и не показывается.

Когда вывел эту картинку на вкладку как BackgroundImage - все отображается.

Следовательно проблема не в картинке.

Не могу понять почему не отображается картинка если она есть в TabControl1.ImageList

Answer 1

https://msdn.microsoft.com/en-us/library/system.windows.forms.imagelist.imagesize(v=vs.110).aspx

Remarks

Because setting the ImageSize property causes the handle to be recreated, you should set ImageSize prior to setting the Images property. When the handle for the ImageList has been created, setting the ColorDepth or ImageSize properties in code, after setting the Images property, will cause the collection of images set for the Images property to be deleted.

Замечания

... свойство ImageSize следует устанавливать до добавления изображений в свойство Images. ... в противном случае, ранее добавленные изображения будут удалены в момент назначения свойств ColorDepth или ImageSize ... Это связано с пересозданием хэндла компоненты.

READ ALSO
Работа в фоновом режиме (Xamarin)

Работа в фоновом режиме (Xamarin)

Подскажите как можно решить данный кейс для iOS 9+, Android 44+ и WP 8

275
Проблема с экспортом decimal чисел в excel

Проблема с экспортом decimal чисел в excel

Доброго времени суток! Возник вопрос при экспорте чисел decimal в файл ExcelЗадача следующая: из базы в datagridview на форме записываются данные, потом...

246
System.Threading.Timers или System.Timers.Timer

System.Threading.Timers или System.Timers.Timer

Необходимо инициализировать порядка 1000 таймеровКаждый таймер должен обрабатывать свой метод, метод в аргументе принимает грубо говоря...

193
Что такое NullReferenceException, и как мне исправить код?

Что такое NullReferenceException, и как мне исправить код?

Когда я выполняю некоторый код, выбрасывается исключение NullReferenceException со следующим сообщением:

521