Use Visual C# to make a UserControl object act as a control container design-time
This article provides information about how to make a UserControl object act as a control container at design time after you add the UserControl object to a Windows Form.
Original product version: Visual C#
Original KB number: 813450
Summary
This article refers to the Microsoft .NET Framework Class Library namespace System.ComponentModel
.
This step-by-step article describes how to make a UserControl object act as a control container at design-time after you put the UserControl on a Windows Form. There may be situations where you want to drag a control to your UserControl. To do this, the UserControl must act as a control container.
By default, a UserControl object can act as a control container only when you create the control. To make a UserControl host a constituent control after you put the UserControl on a Windows Form, you must change the default designer of the UserControl. To implement design-time services for a component, use the DesignerAttribute
class of the System.ComponentModel
namespace. The DesignerAttribute
comes before the class declaration. Initialize the DesignerAttribute
by passing the designerTypeName
and the designerBaseType
parameters.
designerTypeName
is the fully qualified name of the designer type that provides design-time services. Pass the combination of the System.Windows.Forms.Design.ParentControlDesigner
and the System.Design
for the designerTypeName
parameter. The ParentControlDesigner
class extends design-time behavior for a UserControl.
designerBaseType
is the name of the base class for the designer. The class that is used for the design-time services must implement the IDesigner interface.
Create the UserControl as a design-time control container
Create a new Visual C# Windows Control Library project. To do this, follow these steps:
- Start Visual Studio.
- On the File menu, point to New, and then click Project.
- Under Project Types, click Visual C#, and then click Windows Forms Control Library under Templates.
Name the project ContainerUserControl. By default, UserControl1.cs is created.
In Solution Explorer, right-click UserControl1.cs, and then click View Code.
Add the following code to the declarations section:
using System.ComponentModel.Design;
Apply the
System.ComponentModel.DesignerAttribute
attribute to the control as follows:[Designer("System.Windows.Forms.Design.ParentControlDesigner, System.Design", typeof(IDesigner))] public class UserControl1 : System.Windows.Forms.UserControl { ... }
On the Build menu, click Build Solution.
Test the UserControl
Create a new Visual C# project. To do this, follow these steps:
- Start Visual Studio.
- On the File menu, point to New, and then click Project.
- Under Project Types, click Visual C#, and then click Windows Forms Application under Templates. By default, Form1.cs is created.
Add the UserControl1 control to the toolbox.
- On the Tools menu, click Choose Toolbox Items.
- On the .NET Framework Components tab, click Browse.
- In the Open File box, locate the DLL that was built when you created the UserControl control.
Drag UserControl1 from the toolbox (under Windows Forms) to Form1.cs.
Drag a Button control from the toolbox to UserControl1.
Note
The UserControl1 behaves as control container for the Button control.
References
For more information, see the Microsoft Web site: ParentControlDesigner Class.
Váš názor
https://aka.ms/ContentUserFeedback.
Připravujeme: V průběhu roku 2024 budeme postupně vyřazovat problémy z GitHub coby mechanismus zpětné vazby pro obsah a nahrazovat ho novým systémem zpětné vazby. Další informace naleznete v tématu:Odeslat a zobrazit názory pro