| |
VB.NET - Ein- und UmsteigerBenutzerdefiniertes Steuerelement | | | Autor: Parallax | Datum: 28.03.19 22:18 |
| Moin,
ich habe mir gerade mit viel Liebe und Mühe ein eigenes Steuerelement erstellt.
Das hat in so weit auch ganz gut funktioniert.
Nun habe ich das Steuerelement in einem Ordner gespeichert (Steuerelement.vb) und dann konnte der Designer plötzlich mein Form nicht mehr anzeigen. Also hab ich VisualStudio neu gestartet und nun war das Steuerelement im Projektmappeneditor verschwunden.
Also auf "vorhandenes Element hinzufügen" und Steuerelement.vb wieder hinzugefügt.
Soweit auch alles gut, ich kann das Element wieder sehen und der Code dazu ist auch vorhanden.
Allerdings taucht es nicht mehr in der Toolbox auf und ich kann es nicht in mein Form einfügen.
Was mache ich falsch?
Wenn ich die Datei Steuerelement.vb alleine mit VS öffne, zeigt es mir nur den Code an, der Steuerelement selbst nicht.
Ich bin gerade etwas überfrage...
Am morgen nen Joint und der Tag is dein Freund | |
Re: Benutzerdefiniertes Steuerelement | | | Autor: Parallax | Datum: 29.03.19 01:39 |
| Ich habe nun das Element entfernt und neu hinzugefügt und einen Build Fehler im Form behoben, nun zeigtes mir auch das Steuerelement wieder in der ToolBox an. Den genauen Mechanismus verstehe ich nicht.
Allerdings komme ich nun zu einem weiteren Problem:
Das Steuerelement hat eigene Propertys. Mit Me.Steuerelement.Eigenschaft kann ich diese auch ansprechen.
Mit Me.Controls("Steuerelement").Eigenschaft jedoch nicht. Muss man das Steuerelement noch irgendwie zu den Controls hinzufügen?
Grüße,
Andre
Am morgen nen Joint und der Tag is dein Freund | |
Re: Benutzerdefiniertes Steuerelement | | | Autor: Manfred X | Datum: 29.03.19 06:41 |
| Hallo!
Die Controls-Auflistung einer Form enthält
Referenzen auf Klassen, die von der Klasse "Control"
abgeleitet sind (= "erben").
Dein erstelltes Benutzer-Steuerelement ist von der
Klasse "UserControl" abgeleitet.
Diese Klasse wiederum ist im Framework von "Control"
über "ScrollableControl" und "ContainerControl" abgeleitet
worden.
Wenn Du direkt auf ein Element der Controls-Auflistung zugreifst
erhälst Du eine Referenz, die nur die Eigenschaften und
Methoden verfügbar macht, die in der "Control"-Klasse enthalten
sind.
Um auf die von Dir im Benutzersteuerelement programmierten
Eigenschaften und Methoden zugreifen zu können, mußt Du ein
"Casting" durchführen:
Dim MyUserControl as Klassenname = Directcast(Me.Controls(Instanzname), Klassenname)
Klassenname: der Name Deines Usercontrol
Instanzname: der Name Deiner auf die Form gezogenen Instanz des Usercontrol
Über die Referenzvariable "MyUserControl" stehen dann die Eigenschaften
und Methoden Deines UserControl für den Zugriff zur Verfügung.
Um zu ermitteln, ob ein Element der Auflistung eine Referenz auf eine
Instanz Deines Usercontrols ist, kann der TypeOf-Operator verwendet werden:
If TypeOf Me.Controls(Instanzname) Is Klassenname Then .....
Beitrag wurde zuletzt am 29.03.19 um 06:50:20 editiert. | |
Re: Benutzerdefiniertes Steuerelement | | | Autor: Parallax | Datum: 29.03.19 15:32 |
| Danke,
sag mal, gibts eigentlich irgendwas, dass du nicht weißt?
Hat so bestens funktioniert.
Das benutzerdefinierte Control liegt ja nun als Steuerelement.vb in einem Ordner rum. Gibt es einen Weg das Steuerelement in eine dll oder sowas ähnliches zu packen um es "einfach zu transportieren" und einfach per Verweis in ein neues Projekt einfügen zu können?
Beste Grüße,
Andre
Am morgen nen Joint und der Tag is dein Freund | |
Re: Benutzerdefiniertes Steuerelement | | | Autor: Manfred X | Datum: 29.03.19 15:46 |
| Selbstverständlich kannst Du ein VB-Projekt
des Typs "Klassenbibliothek" erstellen und den
Code Deines Usercontrol dort als eine
(oder mehrere) Code-Datei(en) einfügen.
Nachdem diese DLL erfolgreich erstellt worden ist,
kann in Anwendungs-Projekte eine entsprechende
Referenz hinzugefügt werden.
Die Klasse muß mit dem Zugriffsmodifizierer
"Public" gekennzeichnet sein, ebenso alle
Eigenschaften und Methoden, die von einem
Projekt, daß diese DLL referenziert, verwendet
werden können. | |
| Sie sind nicht angemeldet! Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.
Einloggen | Neu registrieren |
|
|
Neu! sevEingabe 3.0
Einfach stark!
Ein einziges Eingabe-Control für alle benötigten Eingabetypen und -formate, inkl. Kalender-, Taschenrechner und Floskelfunktion, mehrspaltige ComboBox mit DB-Anbindung, ImageComboBox u.v.m. Weitere InfosTipp des Monats TOP Entwickler-Paket
TOP-Preis!!
Mit der Developer CD erhalten Sie insgesamt 24 Entwickler- komponenten und Windows-DLLs. Die Einzelkomponenten haben einen Gesamtwert von 1605.50 EUR...
Jetzt nur 599,00 EURWeitere Infos
|
|
|
Copyright ©2000-2024 vb@rchiv Dieter Otter Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.
Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel
|
|