Oggi mi è giunta la necessita di rendere editabile un mio Usercontrol nel Designer di VS. Facendo un po’ di ricerche ho scoperto che è più tosto banale. Infatti, basta scrivere le seguenti righe di codice:
// Mi creo il mio CustomDesigner derivandolo da System.Windows.Forms.Design.ControlDesigner
public class CustomDesigner : System.Windows.Forms.Design.ControlDesigner
{
public CustomDesigner()
{
}
// Faccio l'ovverride della WndProc per passare i messaggi al controllo.
[System.Security.Permissions.PermissionSet(System.Security.Permissions.SecurityAction.Demand, Name = "FullTrust")]
protected override void WndProc(ref System.Windows.Forms.Message m)
{
if (m.HWnd == this.Control.Handle)
base.WndProc(ref m);
else
this.DefWndProc(ref m);
}
public override void DoDefaultAction()
{
}
}
poi è sufficiente decodare il nostro controllo così:
[DesignerAttribute(typeof(CustomDesigner ), typeof(IDesigner))]
public class ITypeResolutionServiceControl : System.Windows.Forms.UserControl
{
......
}
e il gioco è fatto.
Good Coding a tutti.
Print | posted on giovedì 4 maggio 2006 22:46