Eigenes Control mit Text. Der Text wird immer reseted

  • VB.NET

Es gibt 8 Antworten in diesem Thema. Der letzte Beitrag () ist von Mangafreak1995.

    Eigenes Control mit Text. Der Text wird immer reseted

    Hey vb-Com,

    ich habe grad ein eigenes Control gebastelt, auf welches unteranderem Text gezeichnet wird. Für die Property Text nehm folgenden Code:
    Property etc.

    VB.NET-Quellcode

    1. Private t As String
    2. Public Property Text As String
    3. Get
    4. Return t
    5. End Get
    6. Set(ByVal value As String)
    7. t = value
    8. Invalidate()
    9. End Set
    10. End Property
    11. Private Sub InitializeComponent()
    12. ' ...
    13. Me.Name = "Cntrl"
    14. Me.Text = Me.Name
    15. ' ...
    16. End Sub


    Im Designer sind die Änderungen sichtbar. Aber wenn ich debugge steht wieder nur "Cntrl" da. Kann mir da jemand weiterhelfen ?

    MfG M4n94fr34k
    soweit bin ich auch, aber von der Codereihenfolge stimmt doch da was nicht

    in meinem Control ist ja im Initialize der Standard festgelegt. und Initialize wird nur in New ausgeführt.
    Und bei einer Designer.vb für ne Form sieht das ganze so aus

    VB.NET-Quellcode

    1. Control = new ControlType
    2. ' ... und jetzt alle Eigenschaften zuweisen

    und eine der Eigenschaften ist doch der Text der mit zugewiesen wird. Also wird erst Standard gesetzt und dann der neue Wert gewählt.

    Aber ich bestimme den neuen Text im Designer. Dann klick ich auf Debuggen und schon ist im Designer und in der Form wieder der Standard-Text.

    Ich kann ja mal Testen wie es aussieht wenn ich Me.Text nicht zuweise. Die Situation sollte sich doch eigentlich nicht ändern.

    Edit: die Property is Overrides und soll eine Basis-Property überschreiben. Aber MyBase.Text gibts nicht ?! Naja es hat das Problem gelöst die Property einfach anders zu benennen, dann konnt ich aber Me.Text nehmen :wacko:
    Auf jeden Fall funktionierts jetzt ;)

    MfG M4n94fr34k

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Mangafreak1995“ ()

    VB.NET-Quellcode

    1. Imports System.ComponentModel
    2. Public Class UserControl1
    3. Private _text As String
    4. <Description("Text der auf dem Control angezeigt wird") _
    5. , Category("Daten"), Browsable(True), DesignerSerializationVisibility(DesignerSerializationVisibility.Visible)> _
    6. Public Overrides Property Text() As String


    Quelle MSDN.

    Bei mir scheint das DesignerSerializationVisibility Attribut den gewünschten Effekt zu erzielen

    Gruß Mono
    Das ist meine Signatur und sie wird wunderbar sein!

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Mono“ ()

    hmm ... werd ich mir mal notieren
    aber warum hast du hinter der Description ein & ?

    Mangafreak1995 schrieb:

    hmm ... werd ich mir mal notieren
    aber warum hast du hinter der Description ein & ?

    VB.NET-Quellcode

    1. <Description("Text der auf dem Control angezeigt wird") & _
    2. , Category("Daten"), Browsable(True), DesignerSerializationVisibility(DesignerSerializationVisibility.Visible)> _
    3. Public Overrides Property Text() As String


    wenn man was schreibt und dann ein & und ein _ danach macht wird es in der nächsten zeile fortgesetzt also so ist es eig.:

    VB.NET-Quellcode

    1. <Description("Text der auf dem Control angezeigt wird") , Category("Daten"), Browsable(True), DesignerSerializationVisibility(DesignerSerializationVisibility.Visible)> Public Overrides Property Text() As String
    ich brauch dafür aber kein & ... bei mir reicht ein " _"
    Das & war noch über, anfangs ging der Description-Text über 2 Zeilen, hab den noch gekürzt.
    Habs editiert, danke für den Hinweis. Das & war NICHT nötig.

    gruß Mono
    Das ist meine Signatur und sie wird wunderbar sein!
    Gut :D ... wollt grad sagen, seid wann man noch ein & braucht :D

    danke an Mono und mich dass das Problem gelöst ist :D