2016-06-16 7 views
0

Ich arbeite seit etwa zwei Jahren an einer VB.NET-Anwendung, die viel wie eine Windows Explorer Shell und Datei-Browser Ersatz funktioniert. Ich habe gerade angefangen, ein Benutzersteuerelement zu entwickeln, das wie eine Schaltfläche funktioniert, aber aus einer Bildbox und einem Label besteht. Der Code für das, was passiert, wenn das Element angeklickt wird, ist bereits beendet, aber ich habe ein Problem mit den Eigenschaften des Steuerelements; Ich habe dem Steuerelement zwei Eigenschaften hinzugefügt, eine für den "ButtonText", die den Text der Beschriftung ändert, und eine für das "Bild" in der Bildbox. Ich habe die Microsoft-Dokumentation zu den Steuerelementeigenschaften (Creating a Windows Form User Control) gelesen und sie haben mir geholfen, dem Steuerelement Eigenschaften hinzuzufügen.VB.NET User Control Eigenschaften nicht speichern in Designer

Private bttnTxt As String 
Private bttnImg As Image 

<Category("Appearance"), Description("The text displayed at the bottom of the button control")> 
Public Property ButtonText() As String 
    Get 
     Return bttnTxt 
    End Get 
    Set(ByVal Value As String) 
     Label3.Text = Value 
    End Set 
End Property 

<Category("Appearance"), Description("The image used in the button control")> 
Public Property Image() As Image 
    Get 
     Return bttnImg 
    End Get 
    Set(ByVal Value As Image) 
     PictureBox3.BackgroundImage = Value 
    End Set 
End Property 

ich Lösung gebaut, fügte das neu hinzugefügte Steuerelement meine Designer von Hauptformular meiner Anwendung und stellen Sie die Werte des „Bildes“ und „Button“ Eigenschaften. Wenn ich jedoch einen Wert zu meinen benutzerdefinierten Eigenschaften hinzufüge, werden diese sofort auf nichts zurückgesetzt. Ich brauche Hilfe zu bestimmen, warum die Werte, die ich im Designer eingestellt habe, nicht in den Eigenschaften bleiben. I've attached an image here to demonstrate my problem.

Antwort

0

Sie sind nicht alles auf Ihre Variable zu speichern:

Public Property ButtonText() As String 
    Get 
    Return bttnTxt 
    End Get 
    Set(ByVal Value As String) 
     bttnTxt = Value 
     Label3.Text = Value 
    End Set 
End Property 
+0

Wow ... wie bin ich übersehen, so etwas? Vielen Dank! Hat mir wirklich geholfen! –