ToolboxBitmap своя иконка для контрола

WitC
Дата: 08.07.2014 10:36:17
привет!
разрабатываю свой контрол. Хотелось бы привязать свою иконку для отображения в Toolbox-е
к классу контрола цепляю атрибут с реализацией класса ToolboxBitmap(Type, String)
к проекту, в ресурсы подкидываю иконку 16х16, встроенную в сборку (Embedded)...
Добавляю контрол на Toobox в другом проекте... и ни чего - стандартная "шетерёнка"...

Подскажите куда смотреть????
using System;
using System.Drawing;
using System.Windows.Forms;

namespace ClassLibrary1
{
    [ToolboxBitmap(typeof(Class1), "Icon1")]
    public class Class1 : Control
    {
    }
}
Sergey TSV
Дата: 08.07.2014 11:29:49
WitC,

Причин может быть несколько, от неправильной картинки до особенностей работы студии. Чтобы понять проблему, выполните установку компонента вручную (меню панели элементов -> выбрать элементы и т.п.) и посмотрите, появится значок или нет.
Сон Веры Павловны
Дата: 08.07.2014 11:47:43
Где-то на SOF пробегало - если этот проект входит в состав солюшена, то иконка, определенная через атрибут ToolboxBitmap, будет отображаться только в дизайнере. Плюс есть несколько нюансов в писке ресурса для иконки: http://bobpowell.net/toolboxbitmap.aspx
WitC
Дата: 08.07.2014 13:32:44
Спасибо, за ответы...
статью видел... перечитывал ещё и тут, тоже баги с пространствами
http://www.cyberguru.ru/microsoft-net/csharp-net/charp-components-creation.html

всё перепробовал.... (на мой взгляд)...
присоединяю проект VS2010 ... может будет время посмотреть и показать, где я туплю????...
Спасибо.
Sergey TSV
Дата: 08.07.2014 16:00:57
1. Нужно добавлять значок не через свойства проекта, а как "Внедренный ресурс" ("Embedded resource").
2. Значок должен иметь размер 16х16 и палитру 16 цветов (во вложении 32 цвета). Узнаем это через свойства файла, вкладка "Подробно".
3. Пишем в атрибуте имя с расширением: [ToolboxBitmap(typeof(MyContol), "Icon1.ico")].
4. Выполняем вручную установку компонента и все работает.
WitC
Дата: 08.07.2014 18:27:31
да, решено. Всем спасибо.

Для следующих "наступателей на грабли":
1. читаем две ссылки выше.
2. Добавляем файлы только *.ico или *.bmp (у меня прохавало и 32-битные (16Х16 32бит))
3. !!!! моя ошибка !!! - добавляем файл не напрямую в Ресурсы, а так:
3.1. правой кнопкой на проекте - Add -> Existing item...
3.2. выделяем добавленную иконку и в свойствах Build action меняем с Compile на Embedded resource
3.3. иконка будет видна только при добавлении на панель ручками (п.4 поста от Sergey TSV )

вуа-ля.