| |
 | Online-Kurs: Grundlagen des 3D-Druck-Designs für Industrieingenieure , ein Kurs
|
Autor
|
Thema: VB.NET: Property für UserControl (4347 mal gelesen)
|
KMassler Ehrenmitglied V.I.P. h.c. CAD Admin + Mädchen für Alles... i.R.

 Beiträge: 2679 Registriert: 06.11.2000 SolidWorks Start 1999 ** CSWP 01/2008 ** ------------------ Zuletzt beruflich: - SWX2020 SP5; - SAP/PLM+ECTR; - DriveWorks Pro; - Programmierung: VBA, aktuell Visual Studio 2022/VB.Net ------------------ privat: ab 2024 Onshape seit 2025 SolidWorks for Makers (und Rentner)
|
erstellt am: 15. Dez. 2011 14:47 <-- editieren / zitieren --> Unities abgeben:         
Hi Experten, ich habe mir ein UserControl erstellt, das die normalen Buttons ersetzen soll. Das funktioniert grundsätzlich auch. Damit ein Text angezeigt wird, habe ich dem Control ein Label namesn BtnText verpasst. Dann habe für das Control eine Eigenschaft "Text" definiert:
Code: <Description("Der dem Button zugeordnete Text")> _ Public Overrides Property Text As String Get Return BtnText.Text End Get Set(value As String) If BtnText.Text <> value Then _ BtnText.Text = value End Set End Property
Das funktioniert auch, ich kann dem Control nun im Pogramm einen Text zuweisen.Leider taucht die Eigenschaft "Text" aber nicht im Property-Fenster auf. Wie kann ich das erreichen? Wenn ich der Eigenschaft einen anderen Namen gebe, z.B. "xText" (ohne Overrides natürlcih), dann wird sie im Property-Fenster auch angezeigt. ------------------ Klaus www.al-ko.com | mein Gästebuch | privat... | Nasenheim Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
HenryV Mitglied Konstrukteur, Engineering
  
 Beiträge: 824 Registriert: 18.05.2005 SolidWorks 2022 x64 SP5.0 Dell Precision 5820 Intel Xeon W-2125 4x4GHz NVIDIA Quadro P2000 5GB 32GB RAM 2x Dell U2412M, 24" TFT Windows 10 Enterprise x64 22H2 Microsoft 365 E5 Microsoft Visual Studio Enterprise 2022
|
erstellt am: 16. Dez. 2011 10:38 <-- editieren / zitieren --> Unities abgeben:          Nur für KMassler
Hallo Klaus Du musst noch das BrowsableAttribute auf True setzten. Code: <Browsable(True), _ Description("Der dem Button zugeordnete Text")> _ Public Overrides Property Text As String Get Return BtnText.Text End Get Set(value As String) If BtnText.Text <> value Then BtnText.Text = value End Set End Property
Gruss Andreas ------------------ 21 ist nur die halbe Antwort. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
KMassler Ehrenmitglied V.I.P. h.c. CAD Admin + Mädchen für Alles... i.R.

 Beiträge: 2679 Registriert: 06.11.2000 SolidWorks Start 1999 ** CSWP 01/2008 ** ------------------ Zuletzt beruflich: - SWX2020 SP5; - SAP/PLM+ECTR; - DriveWorks Pro; - Programmierung: VBA, aktuell Visual Studio 2022/VB.Net ------------------ privat: ab 2024 Onshape seit 2025 SolidWorks for Makers (und Rentner)
|
erstellt am: 19. Dez. 2011 11:54 <-- editieren / zitieren --> Unities abgeben:         
Hi Andreas, thx für den Tipp. Das funktioniert...halb. Die Eigenschaft "Text" wird angezeigt, ich kann da was reinschreiben. Aber jedes Mal, wenn ich in der IDE zwischen Code und Entwurfsfenster wechsle, steht dann bei der Eigenschaft wieder "Text" drin. Wie schon beschrieben: Mein control besteht aus einem "Usercontrol" mit Backgroundimage, über das ein Label mit Namen btn_text gelegt wurde. Zur Laufzeit kann ich die ".Text"-Eigenschaft füllen, das wird dann auch richtig angezeigt. Nur im Entwurfsmodus merkt der sich den Wert nicht. ------------------ Klaus
PS: Ich habe gerade festgestellt: Wenn ich im Programm eine Load-Procedure für diesen Button habe, dann behält er den Text, selbst wenn die Load-Procedure leer ist. Was auch immer da passiert...kann ich das in das Control verlagern? Zu früh gefreut, jetzt isser wieder weg 
www.al-ko.com | mein Gästebuch | privat... | Nasenheim
[Diese Nachricht wurde von KMassler am 19. Dez. 2011 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
HenryV Mitglied Konstrukteur, Engineering
  
 Beiträge: 824 Registriert: 18.05.2005 SolidWorks 2022 x64 SP5.0 Dell Precision 5820 Intel Xeon W-2125 4x4GHz NVIDIA Quadro P2000 5GB 32GB RAM 2x Dell U2412M, 24" TFT Windows 10 Enterprise x64 22H2 Microsoft 365 E5 Microsoft Visual Studio Enterprise 2022
|
erstellt am: 21. Dez. 2011 12:07 <-- editieren / zitieren --> Unities abgeben:          Nur für KMassler
Hallo Klaus Hab mich noch ein bisschen schlauer gemacht.  Da muss zusätzlich noch das DesignerSerializationVisibilityAttribute rein, damit der Text abgespeichert wird. Code: <Browsable(True), _ DesignerSerializationVisibility(DesignerSerializationVisibility.Visible), _ Description("Der dem Button zugeordnete Text")> _ Public Overrides Property Text() As String Get Return BtnText.Text End Get Set(ByVal value As String) BtnText.Text = value End Set End Property
Nachzulesen hier -> Link Gruss Andreas ------------------ 21 ist nur die halbe Antwort. [Diese Nachricht wurde von HenryV am 21. Dez. 2011 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
KMassler Ehrenmitglied V.I.P. h.c. CAD Admin + Mädchen für Alles... i.R.

 Beiträge: 2679 Registriert: 06.11.2000 SolidWorks Start 1999 ** CSWP 01/2008 ** ------------------ Zuletzt beruflich: - SWX2020 SP5; - SAP/PLM+ECTR; - DriveWorks Pro; - Programmierung: VBA, aktuell Visual Studio 2022/VB.Net ------------------ privat: ab 2024 Onshape seit 2025 SolidWorks for Makers (und Rentner)
|
erstellt am: 22. Dez. 2011 01:19 <-- editieren / zitieren --> Unities abgeben:         
|