Come rendere editabili a DesingTime i nostri controlli in poche rige di codice

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