Hvordan lage en kontroll ha et annet utseende på designtime. 
 Somtimes en kontroll må se annerledes på designtime til hvordan de gjør under kjøring. Dette forskjellig utseende er ofte å si noe til utbygger, som vil være irrelevant for en kjøretidsbruker 
 standard tilnærming for å oppnå dette målet er å legge til ekstra kode i OnPaint metoden 
 public class MyControl. Kontroll {public styre void OnPaint (objekt avsenderen, PaintEventArgs e) {//Normal maleri her if (! DesignMode) {//design tid å male her //Tegn et rektangel rundt kontrollen}}} 
 Selv om dette fungerer fint, er det ikke ideelt. Her er vi blande runtime og design-tidskode. Også ta hensyn til hva som kan skje hvis en annen kontroll stammer fra denne klassen og overstyrer OnPaint 
 public class MyOtherControl: MyControl {public override void OnPaint (objekt avsenderen, PaintEventArgs e) {//Ring base, som trekker en rekt rundt kontroll Base.OnPaint (avsender, e); //Noen kode som vil trekke over rektangel}} 
 Det vi virkelig trenger er en måte å trekke til e.Graphics protestere etter at OnPaint metoden har helt ferdig, og også bare under design-tiden. 
 løsningen ligger i ControlDesigner klassen, og Designer attributtet 
 public class MyControlDesigner. System.Windows.Forms.Design.ControlDesigner {offentlig styrer void OnPaintAdornments (PaintEventArgs e) {//design tid maleri her //Tegn et rektangel rundt kontrollen}} 
 Så, vi bare knytte MyControlDesigner med MyControl klassen, merk hvordan OnPaint metoden ikke lenger har noen design-time maleri i den. 
 [System.ComponentModel.Designer (typeof (MyNameSpace.MyControlDesigner) )] public class MyControl: Kontroll {public override void OnPaint (objekt avsenderen, PaintEventArgs e) {//Normal maleri her}} 

