Announcement

Collapse
No announcement yet.

Text-Property von MyControl:Panel

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Text-Property von MyControl:Panel

    Hallo Experten,

    ich habe "MyControl" von Panel abgeleitet und möchte einen Text darauf anzeigen. Also habe ich eine Property Text erstellt:[highlight=C#]public override string Text
    {
    get { return (m_strText); }
    set
    {
    m_strText = value;
    this.Invalidate();
    }
    }[/highlight]Im Designer unter Eigenschaften erscheint sie aber nicht.
    Das override fügte ich später ein, weil Text grün unterwellt war mit dem Hinweis, dass eine gleichnamige Property der Mutterklasse ausgeblendet werde.
    Ich könnte ja auch die benutzen, aber ein Panel.Text oder base.Text scheint laut IntelliSense nicht zu existieren.

    Wie kann ich meinem Control eine Property "Text" verschaffen?


    luker

  • #2
    Die Control Klasse hat bereits ein Text Property definiert. Jede von Control abgeleitete Klasse, also auch Panel, hat damit auch eine Text Property.
    Da aber Text bei Panel kein Funktion hat ist in Panel die Sichtbarkeit im PropertyEditor und in IntelliSense ausgeschaltet.
    Im Code kannst du aber trotzdem natürlich Panel.Text benutzen.

    Versuch mal die Sichtbarkeit für den PropertyEditor und IntelliSense wieder per Attribut einzuschalten.
    Code:
    [Browsable(true), EditorBrowsable(EditorBrowsableState.Always)]
    public override string Text
    {
    .....
    }

    Comment


    • #3
      Erledigt

      Danke sehr, mit diesen beiden Attributen funktioniert es wie gewünscht.

      Comment


      • #4
        Ergänzent ist vielleicht noch zu sagen, dass das Attribute "Browsable" für Intellisense ist.
        "EditorBrowsable" ist für das PropertyGrid um Sachen über den Designer einstellen zu können.
        Gruss

        Mirko

        Mappen statt hacken mit dem .NET O/R Mapper Invist

        Comment

        Working...
        X