== Developing Components in .NET ==
* Create Assembly/DLL which will contain components.
* Add New Project to current Solution as Class Library. Go to File > New > Project, or in Solution Explorer:
* Select Solution, right-click Add > New Project.
* Select "Class Library" from Templates (Project Types: Visual C# > Windows > Class Library).
* Create a Component.
* Add Component to current Class Library project. Go to Project > Add Component..., or in Solution Explorer:
* Select class library, then right-click, Add > Component.
* Modify the Component code. Eg:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Diagnostics;
using System.Text;
namespace libCustomApp
{
public partial class AppCustomizationConfig : Component
{
//-----------------------------------------------------
// Fields
//-----------------------------------------------------
private string m_About = "Customization component for applications";
private string m_Company = "ACME, Inc.";
private string m_Copyright = "Copyright © 2009, ACME";
private string m_Website = "http://www.acme.com";
private string m_Software = "Sample Software";
private string m_Custom = "My Software";
private string m_CCny = "001";
private string m_Mutex = "CompanySoftwareMutex";
//-----------------------------------------------------
// Properties
//-----------------------------------------------------
public string About
{
get { return m_About; }
set { m_About = value; }
}
public string Company
{
get { return m_Company; }
set { m_Company = value; }
}
//-----------------------------------------------------
// Methods
//-----------------------------------------------------
public AppCustomizationConfig()
{
InitializeComponent();
}
public AppCustomizationConfig(IContainer container)
{
container.Add(this);
InitializeComponent();
}
}
}
=== Reference Material ==
* [[http://msdn.microsoft.com/en-us/library/fc77hxyh.aspx|Walkthrough: Authoring a Component with Visual C#]]
* [[http://msdn.microsoft.com/en-us/library/a8y82386.aspx|Component Designer]]
* [[http://support.microsoft.com/kb/837908|How To Load Assembly at Run-time, i.e. Late Binding]]
=== Component Hierarchy ===
System.Object
System.MarshalByRefObject
System.ComponentModel.Component
System.Windows.Forms.Control
System.Windows.Forms.ScrollableControl
System.Windows.Forms.ContainerControl
System.Windows.Forms.UserControl
Source: Creating Custom .NET Controls in C#, [[http://www.ondotnet.com/pub/a/dotnet/2002/03/18/customcontrols.html?page=1]], O'Reilly Windows Dev Center.