CustomControl Entwiklung - Zwei Fragen, ein Problem

  • VB.NET

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von ErfinderDesRades.

    CustomControl Entwiklung - Zwei Fragen, ein Problem

    Hola Muchachos i Muchachas. :)
    Ich habe da mal ein paar Fragen zur CustomControl (Nicht UserControl) Entwiklung.

    1.
    Ich möchte, daß ein CustomControl (erbt z.B. von Control) nicht in der Form erscheint, sondern dort, wo auch z.B. der Timer angezeigt wird.
    Ich habe dazu absolut nicht gefunden, allerdings fehlte es mir auch an Suchbegriffen.


    2.
    Wie bekommt man es hin, daß Propertys von Propertys angezeigt werden und auch editiert werden können ?
    Wie z.B. die Property Font.
    Auch dazu habe ich nichts gefunden.


    3.
    Sporadisch habe ich das Problem, daß es im Designer Code dazu kommt, daß aus z.B ...

    VB.NET-Quellcode

    1. Partial Class Form1
    2. '...
    3. Private Sub InitializeComponent()
    4. Me.MyCustomControl = New MyCustomControl()
    5. Me.SuspendLayout()
    6. '...
    7. End Sub
    8. Friend WithEvents MyCustomControl As MyCustomControl
    9. '...
    10. End Class


    VB.NET-Quellcode

    1. Partial Class Form1
    2. '...
    3. Private Sub InitializeComponent()
    4. Me.MyCustomControl = New MyCustomControl.MyCustomControl()
    5. Me.SuspendLayout()
    6. '...
    7. End Sub
    8. Friend WithEvents MyCustomControl As MyCustomControl.MyCustomControl
    9. '...
    10. End Class

    ... wird.
    Ich vermute, daß es mit dem Constructor zusammenhängt.
    Dort, wo im Designer Timer und Co sind, tauchen keine Controls, sondern Components auf.
    Erbst Du also von Control, kann es dort unten nicht mehr erscheinen, sondern ist theoretisch dafür gedacht, auf's Form gezogen zu werden.
    Der letzte Punkt liegt vermutlich daran, dass VS im ungünstigsten Fall den Namespace ergänzen muss, weil es sonst Namenskonflikte gibt.
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    Das Font-Problem konnte ich nachstellen und zumindest bei mir lösen. Sobald man erstmal eine Schriftart gesetzt hat, werden auch die Einzelproperties angezeigt. Also ggf. eine DefaultFont im Code festlegen.
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    zu 3)
    Designer-Code wird generiert während des Designen von Forms/UserControls im Designer.
    VisualStudio bevorzugt es, Bezeichner im Code mit vollqualifizierten Namen zu generieren.

    Du hast keinen Einfluss darauf, wann der Designer seinen Code generiert.
    Und wie er das tut kannst du nur sehr indirekt beeinflussen, über Attribute deiner Controls und Properties.

    CustomControls bauen ist eine ziemlich esoterische Wissenschaft.
    Geht wie gesagt ganz viel mit Attributen, TypeConvertern, Designern (nicht der Form-Designer, sondern eine Basisklasse im Namespace System.Design).
    Aber kommt drauf an, was du machen willst - der Einstieg ist kinderleicht, aber dann...