C# - Componente erstellen, jedoch von Form erben

SeeSharpNewBee

Erfahrenes Mitglied
Hi,

ich möchte eine Componente erstellen, erbe jedoch im Designer von einer Form, jetzt meine Frage, wie gehe ich das an, das obwohl ich von einer Form erbe, eine Componente erstellen kann?

Und das nächste Problem sind die Properties, ich blicke da noch immer nicht ganz durch wie das funktioniert, das wenn ich Properties erstelle (damit habe ich kein Problem), das diese im Designer, wenn ich die Componente dann auf eine Form ziehe, diese dann bei den Eigenschaften aufscheinen. Danke!
 
Hi!

ich möchte eine Componente erstellen, erbe jedoch im Designer von einer Form, jetzt meine Frage, wie gehe ich das an, das obwohl ich von einer Form erbe, eine Componente erstellen kann?
Sobald Du von der Form Klasse erbst, ist deine Klasse ein Component.
Der Form-Klasse liegt nämlich die Component-Klasse zu Grunde.
Oder wolltest eher was anderes wissen? Wie man evtl sein Component in die IDE integrieren kann?

In den Folgenden Threads findest einiges zum Thema eigenes Component:
[thread=248735]C# Beim drücken eines Buttons Fensterinhalt ändern - Thread[/thread]
[thread=252814]VC++2005 Eigene Button Klasse? - Thread[/thread]

Und das nächste Problem sind die Properties, ich blicke da noch immer nicht ganz durch wie das funktioniert, das wenn ich Properties erstelle (damit habe ich kein Problem), das diese im Designer, wenn ich die Componente dann auf eine Form ziehe, diese dann bei den Eigenschaften aufscheinen.
[thread=224151]C# - Properties eines Usercontrols - Thread[/thread]
 
Hi,

danke für die Links, den Beitrag bez. Properties habe ich schon gelesen, jedoch bekomme ich bei

Code:
[Category( "Behavior" )]
[Description( "Specifies the ImageList for the ProfileView." )]

eine Fehlermeldung, das der Typ- oder Namespacename 'Category' nicht gefunden wurde, und ob mir eine using-Direktive oder ein Assamblyverweis fehlt.

Fehlt mir da tatsächlich etwas?

Bezüglich dem ersten Problem, ich möchte eine Componente so wie zb. den OpenFileDialog erstellen, nur eben ist es eine Form. Genügt es da, wenn ich von Control erbe oder muss ich noch etwas anderes machen? Danke!

EDIT: Ich hab das Problem mit Comonente und Form einfach so (mehr oder weniger) gelöst, indem ich einfach eine Form mit allen Controls darauf die ich brauche, erzeuge!

Jetzt fehlt mir nur noch wie ich die Form aufrufen kann, da mir ja jetzt die .Show() und .ShowDialog() methoden. Wie komme ich an die? Danke
 
Zuletzt bearbeitet:
Ich hab das Problem mit Comonente und Form einfach so (mehr oder weniger) gelöst, indem ich einfach eine Form mit allen Controls darauf die ich brauche, erzeuge!
Also hast eine Klasse erstellt und darin die Forms und Controls als Member definiert.
Fein. So, kannst das Machen. Hättest aber auch von der Form-Klasse selber erben können.
Ist aber nur sinnig sofern dein Component auch nur ein Form benötigt.

Jetzt fehlt mir nur noch wie ich die Form aufrufen kann, da mir ja jetzt die .Show() und .ShowDialog() methoden. Wie komme ich an die?
Definier die Methoden in deinem Component und ruf dann darin die ensprechenden Methoden deines Forms auf... ;)
Kannst Dir aber spaaren wenn Du von der Form-Klasse erbst.
 
Ok, jetzt wo du es geschrieben hast, ist mir das auch klar geworden, danke!

Jetzt fehlen mir nur noch die Properties, und zwar werden sie zwar angezeigt, jedoch immer unter "Sonstiges". Kann ich da keinen eigenen namen vergeben? Und wie erstelle ich eine Auflistung von möglichen Einstellungen bei den Properties? Ich habe es mit Enum versucht, nur nimmt mir das der getter und setter nicht.

Danke!
 
War ich bei dem Beitrag nicht genau genug? Ich habe genau wie in dem von dir geposteten Beitrag den code verwendet, und dann kommt bei diesen beiden Zeilen der Fehler!

Hi,

danke für die Links, den Beitrag bez. Properties habe ich schon gelesen, jedoch bekomme ich bei

Code:
[Category( "Behavior" )]
[Description( "Specifies the ImageList for the ProfileView." )]

eine Fehlermeldung, das der Typ- oder Namespacename 'Category' nicht gefunden wurde, und ob mir eine using-Direktive oder ein Assamblyverweis fehlt.

Fehlt mir da tatsächlich etwas?

Oh, sorry, mein Fehler, dein "Werd bitte etwas genauer" hat sich auf meine zweite Frage bezogen. Also, ich möchte bei den Properties eine Auswahlmöglichkeit haben, so wie zb. bei private bool BlaBla, da habe ich die möglichkeit zwischen True und False zu wählen, geht das auch bei nicht bool werten, zb. das ich eine Auswahl habe ob das Fenster maximiert oder minimiert dargestellt wird und dgl.?
 
Zuletzt bearbeitet:
Junge Junge. :D
Das kannst, wie in den geposteten Threads beschrieben, mit dem Category Attribut.
Schau mal in deinen Objektbrowser...
Soll heissen das Du den Namespace der Objekte auch selber herraus finden kannst.
Dann würdest auf System.ComponentModel stoßen. Mal von selber darauf kommen,
das was meine Intension in dem Zusammenhang...
 
Also, ich möchte bei den Properties eine Auswahlmöglichkeit haben, so wie zb. bei private bool BlaBla, da habe ich die möglichkeit zwischen True und False zu wählen, geht das auch bei nicht bool werten, zb. das ich eine Auswahl habe ob das Fenster maximiert oder minimiert dargestellt wird und dgl.?
Joah, damit kann ich was anfangen.
Schau doch mal in diesen [thread=257691]eigenes Steuerelement - Thread[/thread]
 
Ok, danke, jetzt hab ich es behirnt! :)

Eine Frage hab ich noch, dann lass ich dich auch schon in Ruhe! :)

Ich möchte bei den Properties eine Auswahlmöglichkeit haben, so wie zb. bei private bool BlaBla, da habe ich die möglichkeit zwischen True und False zu wählen, geht das auch bei nicht bool werten, zb. das ich eine Auswahl habe ob das Fenster maximiert oder minimiert dargestellt wird und dgl.?
 
Zurück