Иконка формы - проблема?

Язык Visual Basic на платформе .NET.

Модераторы: Ramzes, Sebas

Oldman
Обычный пользователь
Обычный пользователь
 
Сообщения: 56
Зарегистрирован: 10.11.2003 (Пн) 12:23
Откуда: ТРТУ

Иконка формы - проблема?

Сообщение Oldman » 16.02.2004 (Пн) 1:19

Как можно программно (не в дизайнере) поменять иконку?

Есть Form1 с ImageList = pict с набором иконок.
Фокус .Icon = Form1.DefInstance.pict.Images.Item(7).Clone ошибки при компиляции не показывает, но при попытке выполнить эту строку возникает ошибка.
Иконку для кнопки - проблем нет:
S_Sort.Image = Form1.DefInstance.pict.Images.Item(1) - все работает, а иконкой формы - лажа :evil:
Помогите, плиз...
Ежики не колются, только бухают иногда

Oldman
Обычный пользователь
Обычный пользователь
 
Сообщения: 56
Зарегистрирован: 10.11.2003 (Пн) 12:23
Откуда: ТРТУ

Сообщение Oldman » 16.02.2004 (Пн) 11:56

И тишина... Что, совсем никак? :?
Что ж за ЁПРСТ?
:(
Ежики не колются, только бухают иногда

Lobo
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 108
Зарегистрирован: 08.01.2004 (Чт) 16:49
Откуда: Таллинн, Эстония

Сообщение Lobo » 16.02.2004 (Пн) 17:12

На кнопку можно поставить любую картинку, а на форму - только icon. Может, там у тебя в ImageList не тот формат?
Изображение Вопросы - рёбрами!

eZeus
Начинающий
Начинающий
 
Сообщения: 15
Зарегистрирован: 21.08.2002 (Ср) 13:46

Сообщение eZeus » 16.02.2004 (Пн) 23:17

Попробуй воспользоваться System.Drawing.ImageFormatConverter

Oldman
Обычный пользователь
Обычный пользователь
 
Сообщения: 56
Зарегистрирован: 10.11.2003 (Пн) 12:23
Откуда: ТРТУ

Сообщение Oldman » 17.02.2004 (Вт) 0:31

А для особо тупых поподробней можно? :oops:
Ненавижу этот "новый" MSDN - ни примеров, ни хрена!!! Сам черт ногу сломит... :x
Куча ссылок по кругу ходят, а толку никакого АБСОЛЮТНО!!!! :evil:
Ежики не колются, только бухают иногда

Lobo
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 108
Зарегистрирован: 08.01.2004 (Чт) 16:49
Откуда: Таллинн, Эстония

Сообщение Lobo » 18.02.2004 (Ср) 10:17

Так всё-таки, какой у тебя формат картики в ImageList ?
Изображение Вопросы - рёбрами!

Oldman
Обычный пользователь
Обычный пользователь
 
Сообщения: 56
Зарегистрирован: 10.11.2003 (Пн) 12:23
Откуда: ТРТУ

Сообщение Oldman » 18.02.2004 (Ср) 10:50

Формат стандартный - иконки взяты из набора иконок в VB6:
16х16 пикселей, 16 бит цвет...
Я уже и копию формы созавал, и копию иконки и как я только не извращался... Даже в умных книжках этого нет...
Как говорится в одном анекдоте про женский половой орган из 5 букв: "...Или жоппа с двумя "п" или очко с мягким знаком" :lol:
Ежики не колются, только бухают иногда

Lobo
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 108
Зарегистрирован: 08.01.2004 (Чт) 16:49
Откуда: Таллинн, Эстония

Сообщение Lobo » 18.02.2004 (Ср) 13:01

Исследовал я этот вопрос...
ImageList.Images.Item имеет тип Image, а тебе надо Icon. Так просто конвертнуть не удаётся. Преобразовываем в Bitmap:
Код: Выделить всё
Dim bmp as System.Drawing.Bitmap = _
        CType(ImageListIcon.Images(0), _
        System.Drawing.Bitmap)
Берём от него handle:
Код: Выделить всё
Dim ptr as IntPtr = bmp.GetHicon
Создаём новую иконку:
Код: Выделить всё
Me.Icon = Me.Icon.FromHandle(ptr)
И дело сделано! :D
Изображение Вопросы - рёбрами!

Oldman
Обычный пользователь
Обычный пользователь
 
Сообщения: 56
Зарегистрирован: 10.11.2003 (Пн) 12:23
Откуда: ТРТУ

Сообщение Oldman » 18.02.2004 (Ср) 23:30

Ёперный театр! Две недели упорных поисков и мытарств увенчались успехом!!!! :P

"Размеры моей благодарности не будут иметь границ в пределах разумного!!!!" (с) С.Альтов. :lol:

И все так просто (когда знаешь :? ) - а ведь метода .FromHandle() и .GetHicon нет в списке доступных методов для объекта Bitmap... Я бы и не догадался...

Еще раз ОГРОМНЫЙ СЕНКС!!!
Ежики не колются, только бухают иногда

brigval
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 176
Зарегистрирован: 16.10.2005 (Вс) 12:37
Откуда: Подмосковье

Re:

Сообщение brigval » 04.03.2011 (Пт) 16:06

Lobo писал(а):Исследовал я этот вопрос...
Мне тоже пригодился Ваш совет. Огромное спасибо!
[Viper] :: А ничего, что прошло больше 7 лет? Зачем некрофилию разводить?
brigval


Вернуться в Visual Basic .NET

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 5

    TopList