Extending Design-Time Support
This content was written for .NET Framework. If you're using .NET 6 or a later version, use this content with caution. The designer system has changed for Windows Forms and it's important that you review the Designer changes since .NET Framework article.
The .NET Framework provides an extensible architecture for customizing the behavior and display of components and controls in design mode. This design-time support architecture lets developers build customized design-time extensions for components and controls. Developers can provide custom design-time behavior, value configuration interfaces, code generation for property initialization, and take advantage of services provided by the design-time environment.
For example, if you define a property of a custom type on a control, you can provide a custom user interface, or type editor, to edit the value of that property using a property browser. You can build a class called a designer that can manage a variety of aspects of a component or control's appearance and behavior at design time.
In the past, support for special case logic for components in design mode was built into the form designer, and it was the form designer, not the object, that was responsible for providing design-time capabilities. In the ActiveX world, for example, different tools offered their own form designers, with different user interfaces and capabilities. Because a product's fixed feature set cannot account for the needs of all controls, ActiveX controls had only a limited level of custom design-time support.
However, design-time support for components in the .NET Framework, is not defined exclusively by a design tool such as Visual Studio. Instead, the development environment supports the extension and definition of design-time behavior by classes such as designers that provide design-time support for components. Support for extensible and customizable design mode behavior is an integrated part of the .NET Framework. Tools such as Visual Studio also provide a range of design-time services that designers can use.
This section provides background information and samples to help component and control developers add design-time functionality to components.
Although many of the design-time systems discussed in this section apply to components generally, some are specific to Web Forms or to Windows Forms. There are design-time differences between ASP.NET Web Forms and Windows Forms because the mechanism of rendering ASP.NET server controls is different from that of rendering Windows Forms controls. An ASP.NET server control sends HTML or another markup language to a client. This language is rendered by the client's browser or other viewing device. A Windows Forms control, on the other hand, typically paints by using GDI+, which is the new Windows graphics library.
In This Section
What's New in Design-Time Support in the .NET Framework 2.0
Provides an overview of new design-time features in the .NET Framework.
Extending Design-Time Support How-to and Walkthrough Topics
Lists links to How-to topics that are contained in this section.
How to: Access Design-Time Support in Windows Forms
Describes the assemblies and namespaces you can use to extend design-time support for Windows Forms controls.
Provides an overview of design-time architecture in the .NET Framework.
Type Descriptor Overview
Provides an overview of the type descriptor architecture.
Behavior Service Overview
Provides an overview of UI support for Windows Forms designers.
Designer Serialization Overview
Provides an overview of the designer serialization architecture.
Attributes and Design-Time Support
Describes how to use custom attributes to associate design-time support with a particular component or control.
Generalized Type Conversion
Describes methods for translating values between types.
Designer Commands and the DesignerAction Object Model for Windows Forms
Describes how to implement designer commands and smart tags for custom components and controls.
Describes the key concepts behind implementing a designer. A designer is a class that can govern the visual representation and behavior of a component at design time.
Provides an overview of the extender provider architecture.
User Interface Type Editors
Provides an overview of the user interface type editor architecture.
Troubleshooting Design-Time Development
Describes how to diagnose and correct various issues that may occur in design-time development.
External Resources for Extending Design-Time Support
Provides links to external Web sites to help improve your understanding of how to extend design-time support.
Design-Time Attributes for Components
Lists the attributes that are generally applied to properties and events in components and controls.
Design-Time Errors in the Windows Forms Designer
Explains the meaning and use of the Design-Time Error List that appears in Microsoft Visual Studio when the Windows Forms designer fails to load.