My question is on how custom controls should be updated.
I downloaded this owner drawn custom control, which I built, then copied the DLL to the Debug folder of the project and loaded it into the toolbox from there.
I decided to use this button on another project. I was mildly surprised to see the control was still in the toolbox but it seemed to work just fine. I decided to change this custom button’s behavior. The button in the toolbox referenced the old version number. So I deleted it and loaded the newly rebuilt DLL.
Now come the problems. The first application–the one where the DLL was added to the toolbox from–still runs okay, but the second application is throwing errors, saying, Type 'CButtonLib.CButton' is not defined. When I add the button to a form, it appears okay. I can change its properties and it shows up in the code windows and in the object browser. But as soon as I try to run it and it throws the errors, it no longer appears in the object browser. References in the code window lose their intellisense.
Things I’ve tried include:
- Copying the DLL to the project’s debug and release folders and loading them into the toolbox from there.
- Removing it from the toolbox altogether and just adding a reference then copying and pasting a button directly from the first project.
- Copying in a form with a CButton on it from the first project.
- Scouring the internet for answers
- Swearing at the computer.
Nothing seems to work and I’ve now spent over a day trying to solve this.
I never did get to the bottom of this. In the end I simply had to recreate the entire custom control project using a different name. I suspect the way I added the original project to the toolbox of a different program – as opposed to adding it within the test project it came with – may have had something to do with it, but that’s just a guess. Anyway, I can amend and update the new control without problem now, so all’s well that ends well. 🙂