Файл значка my.resources в Visual Basic в виде изображения на кнопке - PullRequest
1 голос
/ 15 июня 2010

Я использую ресурсы в VB.NET (2008) для управления своими файлами и имею 3 файла значков, которые должны быть на 3 кнопках в моей форме (нажатие на кнопку изменяет значок формы на нажатую кнопку)

ICO_1.ico

ICO_2.ico

ICO_3.ico

но когда я пытаюсь выполнить приведенный ниже код, я получаю сообщение об ошибке, что «Значение типа system.drawing.icon не может быть преобразовано в system.drawing.image».

btnIcon1.image = my.resources.ICO_1

btnIcon2.image = my.resources.ICO_2

Ответы [ 2 ]

2 голосов
/ 17 июня 2010

Чтобы добавить к ответу Ганса, я обнаружил, что использование всех файлов .bmp в My.Resources для проекта работает лучше всего, и просто используйте небольшую функцию для преобразования растрового изображения в значок, который можно использовать, например, какзначок в WinForm:

Public Shared Function ConvertBitmapToIcon(ByVal resourceBitmap As Bitmap) As Icon
    Return Icon.FromHandle(resourceBitmap.GetHicon())
End Function

Единственный раз, когда мне нужен настоящий .ico-файл, - это значок скомпилированного .exe.

2 голосов
/ 15 июня 2010

Именно то, что написано: кнопка хочет растровое изображение, а не значок.Вы можете использовать Icon.ToBitmap (), но результирующее растровое изображение обычно выглядит довольно плохо.Используйте хороший редактор изображений, чтобы получить лучший результат, Visual Studio есть один.Добавьте полученное растровое изображение к своим ресурсам.

...