If you don't need design-time support and if you yourself will take care of writing standard code to initialize and dispose the component, then you don't need to drop component on designer.
Using non-UI components in designer has these benefits:
- Design-time support
- Standard code (for initialize and dispose)
Design-Time Support
One of the most powerful things that you have in windows forms is the ability to use designer to set Component properties.
Even though Timer
is not a UI component, but you can set its properties like interval at design time. This applies to many other components like BindingSource
, ErrorProvider
, and etc that you can use very friendly property grid and type editors and type converters to configure properties at design time.
- When you want to configure dependent properties for other controls; for example by adding
BindingSource
to designer, it makes data binding very easy.
- When you need to use extender providers like
HelpProvider
and Tooltip
, since they are related to other controls, it is very easy to configure them at design mode.
- When you need to configure properties like
DataSource
and DataMember
, it is very friendly to use designer and use great property grid features.
- Components will add as class level fields, and you can make them public using deigner.
- When you need to use
Localizable
feature of Form
for your components, it's completely available using designer.
- When you need to simply add or remove event handlers you can do it using property grid.
Standard Code
If you take a look at designer generated code you will see:
- Generated code for components that supports
ISupportInitialize
uses their BeginInit
and EndInit
- Generated code for components, pass
this.components
to constructor and then use it when Dispose
If you don't need design-time support and you write standard code for components, so it's completely OK to use theme in code.
IDisposable
, whether the designer adds aDispose()
call in theDisposing(bool disposing)
. Or do a find all references on the variable name and see if there is any code added (besides the obvious). – Cure