There is what appears to be a similar question here
I’ve got a baseform with a property called Buttons. It’s simply a generic list of Button objects. This is visible for derived forms in the property grid of the Forms designer and backed by a CollectionEditor. When a button is added via the Collection Editor it is added to a control on the base form, when it’s deleted, it’s removed from the form.
The problem is that the user can also remove it from the form manually by selecting it and clicking delete.
How can I force the user to use the Collection Editor via the Buttons property and prevent them from making changes directly on the designer surface?
Wrap the entire thing up as a User control.
Then like a compound user control, you can’t twiddle with it’s contents, unless you have access to the control.
So they can delete the entire thing, or they can use it’s facility to mess with the buttons.