2009-09-15 4 views
16

Ich habe ein Steuerelement in C# entwickelt. Unter anderem kann dieses Steuerelement zur Laufzeit andere Steuerelemente anzeigen. Wenn Sie die Assembly in Visual Studio einschließen, wird das von mir erstellte Steuerelement angezeigt, aber auch die anderen Steuerelemente (die von meinem Steuerelement verwendet werden) werden ebenfalls angezeigt. Ich möchte sie lieber nicht in der Toolbox von Visual Studio anzeigen lassen. Gibt es ein Attribut, das ich auf diese Klassen anwenden kann, damit sie nicht angezeigt werden? Ich habe das durchsuchbare Attribut gefunden, aber es steht für Eigenschaften und Ereignisse.Wie verstecke ich die Steuerelemente, die mein Steuerelement aus der Toolbox verwendet?

Antwort

32

Fügen Sie den Klassen, die nicht in der Toolbox angezeigt werden sollen, das Attribut [ToolboxItem (false)] hinzu.

+0

Das hat jetzt funktioniert Ich muss herausfinden, wie man ein Icon setzt. Ich habe ToolboxBitmap ausprobiert, aber es ist noch nicht gelungen, es zum Laufen zu bringen. –

+2

ToolboxBitmap ist das korrekte Attribut. Sie müssen Ihrem Projekt eine BMP-Datei hinzufügen und sicherstellen, dass die Erstellungsaktion auf Ressource festgelegt ist. Dann es heißt Example.bmp angenommen und im selben Ordner wie die Kontrolle, Ihr ToolboxBitmap Attribut würde in etwa so aussehen: Namespace MyControls { [ToolboxBitmap (typeof (MyControl), "Example.bmp")] public sealed Klasse MyControl: Steuerelement { } } – Josh

0

Wenn Sie ein UserControl als "internal" anstelle von "public" deklarieren, wird es nicht in der Toolbox angezeigt, wenn Sie die Assembly in einem anderen Projekt referenzieren.

Aktualisieren: oder vielleicht funktioniert das überhaupt nicht. Ich kann meine einfachen Teststeuerungen nicht richtig funktionieren lassen, wenn ich versuche, sie in einem anderen zu hosten. Lass es mich wissen, wenn "intern" funktioniert.

+0

Ich habe überprüft, dass es nicht helfen, es intern zu machen. –

+0

Das ist komisch - es intern zu machen * hat * es aus der Toolbox meines konsumierenden Projekts herausgehalten. Naja, offensichtlich macht das ToolboxItem-Attribut viel mehr Sinn. – MusiGenesis

Verwandte Themen