• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 793
  • Last Modified:

How to Add a panel subClass to designer

Hello Experts.

I want to create a custom panel control and use it in the designer.

so my custom panel looks like this
Public Class pnlAttribs
    Inherits System.Windows.Forms.Panel

    '' custom properties and methods go here

end Class

Open in new window


but i cannot locate it in the choose toolbox items dialog (even after building) to add it to my toolbox and get it into the designer, i assume it is not producing the .dll that VS is looking for.  (modification to the declarations in the designer files makes visual studio very angry)

I do not know if i need to inherit a usercontrol object instead of panel but i would like to have all the features of the panel available to the subclass.

I suppose i could create a user control that contains a panel but that seems to be an unnecessary layer  i.e.
Public Class pnlAttribs
 inherits UserControl

 friend withEvents myPanel = new panel

  '' custom properties and methods go here

end class

Open in new window


if someone could tell me how to get an inheritec panel into the toolbox i would be very gratefull

Thanks,
Anthony

ps. i am using
Microsoft Visual Studio 2008
Version 9.0.21022.8 RTM
Microsoft .NET Framework
Version 3.5 SP1

Installed Edition: Standard

Microsoft Visual Basic 2008   91851-136-7108014-60754
Microsoft Visual Basic 2008
0
apuma
Asked:
apuma
  • 3
  • 2
  • 2
1 Solution
 
Jacques Bourgeois (James Burger)PresidentCommented:
A UserControl is useful to build a control out of a group of other controls, not to build a standalone control. Inheriting from Panel is the way to go.

If your Panel class is defined in the application itself, you will see it automatically at the top of the ToolBox.

If it is in a dll, then its appearance in the Toolbox depends on 2 things. The second one is probably the one that interests you, but so that you get the whole thing about the concept...

If your application references the compiled dll, the way it references other dlls, you need to manually add your control to the Toolbox, through a right click... Choose items... Browse to your dll. This is usually not a very good way to work for your own controls, because of versioning problems that forces you to refresh this thing regularly if you want to see changes made to your dll.

What follows is good for testing purposes or when you work alone. It is usually not a good suggestion if you work with a team.

For your own controls, it is better to add your dll in each solution where you want to use it, along with the application. Instead of making the reference through the .NET tab of the reference window, do it through the Project tab. This will make a reference to the source code, so any change you make to the source code of the control will automatically be visible in the application.

And you will gain something you want. Because it is part of the solution, it will automatically appear at the top of the Toolbox.
0
 
apumaAuthor Commented:
Thank you JamesBurger

the Panel class is defined within the project  (project .. add class.. then mark the class as inheriting panel)  so the vb file created is sitting in my project explorer, however the panel is not sitting in my designer toolbox (under $projectName Components)

I have been tinkering and created a user control as well and that is not showing in the toolbox either.  (there are errors currently in the application that stops it from running, but i assume the error free files such as the custom control and inherited panel would build and become available [as they are needed to fix the errors])

I want to avoid creating the control outside of this project, as it is only used in this project  (also i am the only developer working on the project)
0
 
CodeCruiserCommented:
Usually when you have custom controls in your project, these controls appear automatically at the top of toolbox when you build the project. Build the project and then show us a screenshot of the toolbox.
0
Never miss a deadline with monday.com

The revolutionary project management tool is here!   Plan visually with a single glance and make sure your projects get done.

 
apumaAuthor Commented:
I think the build is failing to create the controls because there are other errors.

I will clean the other errors and try again
0
 
CodeCruiserCommented:
Good idea :-)
0
 
Jacques Bourgeois (James Burger)PresidentCommented:
The Toolbox always reference compiled assembly, not your source code. Until the application compile, you won't see the controls in the Toolbox.
0
 
apumaAuthor Commented:
After the long process of getting the application building properly i now see the control in the toolbox list as JamesBurger originally stated.  I had to do a bit of fiddling with serialization in order for the custom properties to show in the designer.

0

Featured Post

Free Tool: SSL Checker

Scans your site and returns information about your SSL implementation and certificate. Helpful for debugging and validating your SSL configuration.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

  • 3
  • 2
  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now