71
votes

I have an existing library (not a Winforms application) that supplies some Winforms to a bona-fide Windows application. Within this library, I would like to create a User Control to group some controls together. To accomplish this, I right-clicked, Add, User Control and dragged some controls onto the new User Control.

So far, so good. The User Control even has the requisite User Control icon. But dragging the new User Control from the Solution Explorer to a new blank Winform does not work (I get a circle with a line through it), and dragging it over to the Toolbox doesn't work either (even though I get a + sign when I drag it over the Toolbox).

Is there some sort of XML magic or something else I'm missing to make this work?


Note: I had some problems with Visual Studio 2008 that I managed to fix by following the workarounds that can be found here. I am now able to get User Controls I added to my existing project into the toolbox by simply rebuilding the project.

4
You can try turning on Options -> Windows Forms Designer -> AutoToolboxPopulate to make this easier. That way, all you have to do is rebuild the solution for the user controls to show up in your toolbox.Cody Gray♦
@CodyGray: It's already turned on, but thanks for the tip.Robert Harvey
It is very unclear, especially Within this library, I would like to create a User Control. Just create your own project for that UC. If you really want to add the UC to the existing project then don't add it to the toolbox but just open the project. Build to get the existing controls added to the toolbox.Hans Passant
@HansPassant: There is apparently something wrong with my VS environment; building the project containing the User Control doesn't add the control to the toolbox, and trying to open the "Choose Items" toolbox dialog crashes VS.Robert Harvey
Start by resetting the toolbox, right-click + Reset. Add the library to your solution instead, using Add Reference or Add Project.Hans Passant

4 Answers

97
votes

Assuming I understand what you mean:

  1. If your UserControl is in a library you can add this to you Toolbox using

    Toolbox -> right click -> Choose Items -> Browse

    Select your assembly with the UserControl.

  2. If the UserControl is part of your project you only need to build the entire solution. After that, your UserControl should appear in the toolbox.

In general, it is not possible to add a Control from Solution Explorer, only from the Toolbox.

Enter image description here

8
votes

One way to get this error is trying to add a usercontrol to a form while the project is set to compile as x64. Visual Studio throws the unhelpful: "Failed to load toolbox item . It will be removed from the toolbox."

Workaround is to design with "Any CPU" and compile to x64 as necessary.

Reference: https://support.microsoft.com/en-us/kb/963017

3
votes

I found that user controls can exist in the same project.
As others have mentioned, AutoToolboxPopulate must be set to True.
Create the desired user control.
Select Build Solution.
If the new user control doesn't show up in the toolbox, close/open Visual Studio.
If the user controls still aren't showing up in the toolbox, right click on the toolbox and select Reset Toolbox. Then select Build Solution. If they still aren't there, restart Visual Studio.
There must not be any build errors when the solution is built, otherwise new toolbox items will not be added to the toolbox.

1
votes

One user control can't be applied to it ownself. So open another winform and the one will appear in the toolbox.