Wenn Sie den spezifischen Typ der Steuerung nicht im Voraus kennen, ist dies nicht möglich. Die Klasse muss von UserControl
abgeleitet sein, damit Sie sie in ein UserControl
umwandeln können und Zugriff auf alle Methoden und Eigenschaften dieser Klasse haben. Wenn Sie einige spezielle Informationen oder Funktionalitäten benötigen, die alle Steuerungen haben müssen, und Sie davon ausgehen müssen, dass diese immer vorhanden sind, müssen Sie Ihre eigene Klasse schreiben, die von UserControl
abgeleitet ist, und verlangen, dass alle benutzerdefinierten Steuerungen stattdessen davon abgeleitet sind:
// alle benutzerdefinierten Steuerungen müssen von dieser Klasse erben
public abstract class SpecialControlBase : UserControl
{
public abstract void DoSomethingSpecial();
}
Dann könnten Sie alle Steuerungen zur Laufzeit auf dieses SpecialControlBase
umwandeln und Zugriff auf die Methode DoSomethingSpecial
haben.
Aber was die spezifischsten Elemente einer zur Laufzeit geladenen Klasse betrifft, denken Sie darüber nach - wenn ich meine eigene Steuerung namens RexsUserControl
schreibe und sie in Ihre Anwendung einfüge, gibt es keinen Weg für Sie zu wissen, welche Methoden und Felder ich auf meine Steuerung gesetzt habe, sodass Sie keinen Code schreiben können, der explizit auf diese Elemente verweist.