[SOLVED] VS2010 глючит создание usercontrol

akkylla

В студиях 2008 и 2010 одинаковая фигня - в проект C# Windows Forms добавляю UserControl, но он не появляется в toolbox'е, хотя должен:
http://msdn.microsoft.com/en-us/library/wz0k6226.aspx
 
If you want to add a custom control that you created in another project or a third-party control to the Toolbox, you must do so manually. If the current project contains your control or component, it should appear in the Toolbox automatically. For more information, see Walkthrough: Automatically Populating the Toolbox with Custom Components.

Создавать каждый раз dll-проект с UserControl'ом, прикручивать его в toolbox как внешний че то грустно
Наткнулся на мануал один -там автор делает в экспресс выпуске. Поставил ExpressC# 2008 RUS, там контрол сразу появляется после первого build:

Помогите плз! Не удобно все время руками переписывать то что должен дизайнер генерить....

kill-still

перечитал внимательнее:
Создавать каждый раз dll-проект с UserControl'ом, прикручивать его в toolbox как внешний че то грустно
Иначе никак.
Наткнулся на мануал один
Тебе по рукам настучать надо. Попадался мне один проект с таким хаком, в виде исходников. Привести его в рабочий вид стоило немало седых волос. Т.к. чтобы зарегить компонент нужен бинарник, а чтобы сбилдить бинарник нужно зарегистрировать компонент. Получается нарушение причинно следственной связи. Плюс ты заебёшься вносить какие-либо изменения в такой компонент. (например ты добавляешь новое свойство в компонент, ребилдишь проект. теперь тебе надо руками сериализованные объекты этого класса править, или пересоздавать их, иначе при запуске бинарника словишь краш) В общем ты не должен этого хотеть. СОВСЕМ. Зависимости в проекте должны быть в виде дерева, а не ёбанного клубка.

akkylla

Да при чем тут? Сам компонент то прекрасно работает, только добавлять его приходится наполовину вручную. Вопрос в глюках студии - проблема только лишь в том что компонент не появляется в ToolBox'е! Притом в MSDN четко написано "юзер контрол появится автоматически, без всяких дополнительных действий с вашей стороны" (дословно перевел). И для Express Edition у меня так и есть, а вот полноценная - нифига.
Тебе по рукам настучать надо. Попадался мне один проект с таким хаком, в виде исходников. Привести его в рабочий вид стоило немало седых волос. Т.к. чтобы зарегить компонент нужен бинарник, а чтобы сбилдить бинарник нужно зарегистрировать компонент. Получается нарушение причинно следственной связи. Плюс ты заебёшься вносить какие-либо изменения в такой компонент. (например ты добавляешь новое свойство в компонент, ребилдишь проект. теперь тебе надо руками сериализованные объекты этого класса править, или пересоздавать их, иначе при запуске бинарника словишь краш) В общем ты не должен этого хотеть. СОВСЕМ.
Если я написал что делать каждый раз .dll с контролом грустно, то это не значит, что я его делаю млин.. Именно потому что это грустно=неправильно
Вот как баран из Toolbox вставляю в формочку тот контрол, от которого наследуется мой, а потом руками исправляю .designer.cs.

kill-still

У тебя компонент не появляется после регистрации длл, или что?
Если ты про хак - то это не ко мне, я не буду в этом участвовать.
Пиши подробнее блин + код запости.
Если хочешь хранить описание класса в том же проекте, то создавай его динамически. Нефиг его в десигн тайм конструктор пытаться пихать.
Если ты хочешь, чтобы он только в одном проекте отображался, а в других - нет, так пропиши пути в проект, а не в настройки IDE.

Dasar

В студиях 2008 и 2010 одинаковая фигня - в проект C# Windows Forms добавляю UserControl, но он не появляется в toolbox'е, хотя должен:
после добавления UserControl-а делаешь build и контрол появляется в toolbox-е

akkylla

после добавления UserControl-а делаешь build и контрол появляется в toolbox-е
В том то и дело что в Visual Studio Express Edition появляется, а в Professional - нет!
У тебя какие версии ОС и студии, какие SP, какие языки, напиши пожалуйста.
У меня Win7 - русский, там студия 2010 английская. WinXP - русский - там студия 2008 английская.
А вот студия Express русская - там работает ) может какие то глюки с языками...

akkylla

Если ты хочешь, чтобы он только в одном проекте отображался, а в других - нет, так пропиши пути в проект, а не в настройки IDE.
Да, хочу в одном проекте.
А что куда прописывать? они там и так все в одной папке, и студия об этом знает, т.к. в ней все сделано с нуля.

kill-still

Погугли у меня нет под рукой. Я на память не помню, да и с 2010 ни разу не работал.

6yrop

там есть галочка, типа обновлять бар после каждого билда или нет. Ее рекомендуют отключать, поскольку с ней тормоза.

akkylla

Спасибо! Помогло!
Очень странно что эффект обновления Toolbox'а не достигается закрытием/открытием студии с солюшеном (ну или просто солюшена)

Dasar

обновлять бар после каждого билда или нет.
без установленной галки когда обновляется?

akkylla

У меня без установленной галки вообще не обновляется :grin:
Более того, если поставить галку, сребилдить, то появится.
Если потом галку снять и перезапустить студию, опять контролов в тулбоксе нет
Оставить комментарий
Имя или ник:
Комментарий: