2009-04-24 17 views
2

Ich habe eine Frage zum Erweitern eines benutzerdefinierten Steuerelements, das von UserControl erbt.Benutzersteuerelement erweitern

public partial class Item : UserControl 
{ 
    public Item() 
    { 
     InitializeComponent(); 
    } 
} 

und ich möchte eine Kontrolle machen, die von Artikel erbt

sg wie die

public partial class ItemExtended : Item 
    { 
     public ItemExtended():base() 
     { 
      InitializeComponent(); 
     } 
    } 

Das funktioniert perfekt natürlich und das Erbe funktioniert, aber mein Problem ist, in dem Designer

Ich kann diesen Artikel nicht öffnenExtended in Design ....

heißt es: Konstruktor bei Type "Item" nicht gefunden.

Hat Sy eine Erklärung?

ist der beste Weg, es zu tun?

Thx

Ich bin natürlich mit C# auf .NET Winform :)

+1

Sie könnten mehr Antworten erhalten, wenn Sie sagen, welche Sprache/framwork Sie verwenden – Greg

Antwort

3

Sie rufen InitializeComponent() zweimal mit InitializeComponent() aufrufen, auf dem sehr abgeleiteten Usercontrol.

Dies kann zu einem Problem führen.

Und es gibt einige Hilfe Eigenschaft callad IsDesign oder Design (etwas ähnliches) von UC, die hilft, unnötige UI-Operationen auf Entwurfszeit (in VS) zu vermeiden.

Edit: es ist DesignMode. Sie können vermeiden, RT-Funktionen von Design auszuführen. Wie wenn (! This.DesignMode) InitializeComponents();

Sie können diesen forumpost auch überprüfen. http://www.c-sharpcorner.com/Forums/ShowMessages.aspx?ThreadID=41254

+0

können Sie mehr Precys über diese isDesign/Design Zeug? – GillouX

+0

Es heißt DesignMode, Iirc. if (DesignMode) ... – sisve

+0

Danke für Ihre Antworten – GillouX

Verwandte Themen