1Danke
ERLEDIGT
JA
JA
ANTWORTEN
6
6
ZUGRIFFE
1093
1093
EMPFEHLEN
-
Hy,
ich habe ein benutzerdefiniertes Control (CTLMF). Dies habe ich mehrmals in ein Formular eingefügt. CTLMF1, CTLMF2, ... (in eine Tabelle).
Nun möchte ich diesen über eine Schleife Werte zuweisen.
Im CTLMF steht die Variable "public test as date".
Gebe ich den Code
CtlMF1.test = Today
im Formular ein, erkennt es die Variable test und es gibt keine Fehlermeldung.
Versuche ich es nun mit
Dim ctlName As String = "CtlMF" & zaehler
dim cl1 as control
cl1 = tablekalender.controls(ctlName)
erkennt das Programm bei
cl1. nicht das test. Und sagt "test" ist kein member von windows.forms.control...
Mache ich da was falsch?
Gruß
Marco
-
Alle Steuerelement sind von Control abgeleitet.
Was du aus der ControlCollection bekommst ist erstmal die Beschreibung des Basis Objektes, du müsstest dieses Objekt nun noch nach deinem Control casten.
Glaube in VB geht das mit DirectCast.
P.S.: Und bitte Code Tags verwenden
-
-
-
-
Bei dem von Spyke genannten Link wäre ein Beispiel gewesen, so schwierig ist's ja nun auch wieder nicht:
Bemerkung: Funktioniert nur, wenn Option Explicit auf "Off" in der Entwicklungsumgebung gesetzt ist. Dies ist für VB aber die Grundeinstellung. Wenn du mehr Erfahrung hast solltest du das dann auf "On" stellen um Fehler zu vermeiden. Dann wird aber zwingend ein TypeCast benötigt (bei der Off-Einstellung macht das Visual Studio für dich). Mit TypeCast sieht der Code dann wie folgt aus:Code vbnet:1 2 3
Dim ctlName As String = "CtlMF" & zaehler dim cl1 as CTlMF cl1 = tablekalender.controls(ctlName)
Code vbnet:1 2 3
Dim ctlName As String = "CtlMF" & zaehler dim cl1 as CTlMF cl1 = DirectCast(tablekalender.controls(ctlName),CtlMF)
Geändert von Shakie (04.09.09 um 01:22 Uhr)
hihi = -h²
-
Erstmal vielen Dank. Klappt nun. Das Beispiel hatte ich mir angesehen und natürlich auch probiert. Nur mein Fehler war, das ich die Variable cl1 weiter so deklariert habe:
Code :1
dim cl1 as control
statt
Code :1
dim cl1 as ctlMF
Dient aber das Option Strict = On nicht dafür um Fehler zu vermeiden? Aber vielleicht stelle ich es wirklich auf Off. Kann es ja je Modul zum testn auf On setzen.
Gruß
Marco
Ähnliche Themen
-
Textbox mit variablem Namen ansprechen
Von Be19 im Forum Visual Basic 6.0Antworten: 4Letzter Beitrag: 05.08.10, 13:31 -
DataGridView mit Namen ansprechen und Datasource festlegen
Von deusfalsus im Forum .NET Windows FormsAntworten: 1Letzter Beitrag: 10.08.08, 13:13 -
Dynamisch erstelltes DataGridView mit Namen ansprechen
Von makop im Forum .NET Windows FormsAntworten: 2Letzter Beitrag: 12.09.07, 15:07 -
array über namen ansprechen
Von Eaden im Forum PHPAntworten: 3Letzter Beitrag: 29.04.05, 10:14 -
Link über namen ansprechen
Von Layna im Forum PHPAntworten: 1Letzter Beitrag: 27.06.04, 21:59





Zitieren

Login





