Water1988 Ответов: 4

Я не могу использовать элементы управления UserControl в winform c#.net


привет
Я создал пользовательский элемент управления и скомпилировал решение.

После компиляции в окне инструментов этот элемент управления приходит.

Но когда я перетаскиваю каплю в форму, она показывает сообщение об ошибке: "не удалось загрузить элемент toolbox 'control name', он будет удален из панели инструментов. "

.. а теперь его тоже уберут из ящика с инструментами.

В чем проблема или в чем ее решение?

Это ошибка VS2013? Потому что если я создаю новый проект, то сначала проектирую пользовательский элемент управления, а затем добавляю dll-проект. Я могу перетащить управление в свою форму. В этом нет ничего плохого? Это странно.

Stephen Hewison

Мой совет - начать с пустого элемента управления. Затем переместите функциональность по крупицам из вашего сломанного элемента управления в пустой. Тестирование каждый раз, пока он не перестанет работать.

4 Ответов

Рейтинг:
32

BillWoodruff

... 5 июня edit ... на основе исследований, которые показывают, что Visual Studio Express не имеет шаблона "библиотека управления Windows Forms"...

Предположим, что вы используете: Visual Studio Express 2013 для рабочего стола Windows, попробуйте сделать это:

1. Откройте новый проект выберите тип проекта библиотеки классов'

2. вручную добавьте ссылки на систему.Окна.Формы и система.Чертеж и любые другие ссылки, необходимые вашему UserControl

3. Добавление пользовательских элементов управления: это дизайн, в нем код.

4. Когда вы скомпилируете/сохраните этот проект, он создаст файл .dll

Чтобы повторно использовать UserControl в новом проекте приложения WinForms:

1. Выберите вкладку ToolBox, контекст-выберите пункт "Добавить новый элемент"

2. Выберите обзор: перейдите к проекту библиотеки классов типа, в котором вы создали UserControl

3. найти скомпилированный .dll для этого класса Lbrary Project: выберите его: надеюсь, он появится в панели инструментов


.. конец июня 5 правка ...

Контрольный список:

0. UserControl имеет конструктор без параметров ?

1. Вы создали элемент управления UserControl без косвенный зависимости от других файлов, dll, элементов управления, форм и т. д. ?

2. Вы создали UserControl как проект типа "библиотека управления Windows Forms" ?

3. вы создали новый WinForms-проект, где вы хотели, чтобы повторно использовать скомпилированный пользовательский элемент управления, где:

а. вы контекстно щелкнули на панели инструментов в какой-то существующей вкладке, выбрали "Добавить новый элемент", а затем перешли в диалоговом окне селектора в библиотеку dll UserControl ?

b. UserControl теперь появляется в панели инструментов ?

4. ты реестр/установить сборку пользовательского элемента управления ? (если вы ожидаете, что элемент управления будет сохраняться в панели инструментов каждый раз, когда вы открываете новый проект) ... Я подозреваю, что это не относится к вам, но, если это так, смотрите: [^]


Water1988

Спасибо за ваш ответ.

0. Да, UserControl имеет конструктор без параметров.
1. Да, это просто UserControl, я не добавлял никакого собственного кода.
2. Нет, я создаю его из проекта winForm. Я использую vs2013 express. У него нет типа "библиотека управления Windows Forms", но я добавляю пункт "пользовательский контроль", это не должно быть проблемой.
3. Нет, когда я перестраиваю проект, он уже был набором инструментов. Я просто хочу использовать его в одном проекте.
4. я не понимаю, о чем вы говорите. Я просто хочу использовать этот пользовательский элемент управления в одном проекте. Я не хочу использовать его каждый раз.

BillWoodruff

Является ли версия Visual Studio Express, которую вы установили, "Visual Studio Express 2013 для рабочего стола Windows" ?

Water1988

Да, конечно.

BillWoodruff

Пожалуйста, посмотрите на мой пересмотренный ответ для возможного решения.

Water1988

Это работает. Спасибо.

Рейтинг:
1

jeffyoung1234

Это как-то связано с 64-битными проектами, если я правильно помню, панель инструментов поддерживает только 32-битные.


CHill60

Ты не до конца все запомнил, это просто какая-то ерунда.
Вот некоторые подробности. библиотека классов x64 пользовательских элементов управления??[^]
Не мой уровень сложности.

rahul-techie

Правда Спасибо :)

Рейтинг:
1

Member 13915511

просто очистите и перестройте проект


Vladimir Glueck

Иногда самое простое-самое лучшее. Это сработало для меня.

Рейтинг:
0

OriginalGriff

Это не ошибка VS - я часто использую UserControls, и обычно это происходит потому, что код в вашем конструкторе без параметров создает исключение. Либо закомментируйте код конструктора и медленно добавьте его обратно, либо создайте экземпляр во время выполнения и используйте отладчик, чтобы выяснить, почему он не работает.


Water1988

Спасибо за ваш ответ. Конструктор не выдал никаких исключений. Я не знаю, как добавить элемент управления в форму. Что же мне делать?

Water1988

В моем кодексе нет ничего неправильного. Все это работает. Я создаю экземпляр во время выполнения, и он показывает. ничего страшного. Он просто не может тащиться.