tutorials.de Buch-Aktion 05/2012
Like Tree1Danke
  • 1 Beitrag von Shakie
ERLEDIGT
JA
ANTWORTEN
6
ZUGRIFFE
1093
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Maggo13 Maggo13 ist offline Mitglied
    Registriert seit
    Aug 2009
    Beiträge
    14
    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
     

  2. #2
    Avatar von Spyke
    Spyke Spyke ist offline Capoeirista
    Registriert seit
    Oct 2002
    Beiträge
    931
    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
     
    www.iv-interactive.de - Projektewebsite
    WikiParser - aktuelles Projekt

  3. #3
    Maggo13 Maggo13 ist offline Mitglied
    Registriert seit
    Aug 2009
    Beiträge
    14
    Zitat Zitat von Spyke Beitrag anzeigen
    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
    Danke für die Antwort...

    Diese Idee hatte ich auch schon. Nur weiß ich leider nicht wie ich dieses control casten soll. Bin Anfänger.

    Gruß
    Maggo13
     

  4. #4
    Avatar von Spyke
    Spyke Spyke ist offline Capoeirista
    Registriert seit
    Oct 2002
    Beiträge
    931
    Zitat Zitat von Maggo13 Beitrag anzeigen
    Danke für die Antwort...

    Diese Idee hatte ich auch schon. Nur weiß ich leider nicht wie ich dieses control casten soll. Bin Anfänger.

    Gruß
    Maggo13
    DirectCast

    http://msdn.microsoft.com/de-de/libr...8VS.80%29.aspx
     
    www.iv-interactive.de - Projektewebsite
    WikiParser - aktuelles Projekt

  5. #5
    Maggo13 Maggo13 ist offline Mitglied
    Registriert seit
    Aug 2009
    Beiträge
    14
    Das kenne ich soweit, weiß nur nicht wie ich es bei meinem Beispiel anwenden soll...
     

  6. #6
    Avatar von Shakie
    Shakie Shakie ist offline Mitglied Diamant
    Registriert seit
    May 2004
    Ort
    Europa
    Beiträge
    2.048
    Bei dem von Spyke genannten Link wäre ein Beispiel gewesen, so schwierig ist's ja nun auch wieder nicht:
    Code vbnet:
    1
    2
    3
    
    Dim ctlName As String = "CtlMF" & zaehler
    dim cl1 as CTlMF
    cl1 = tablekalender.controls(ctlName)
    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 = DirectCast(tablekalender.controls(ctlName),CtlMF)
    Geändert von Shakie (04.09.09 um 01:22 Uhr)
    Maggo13 bedankt sich. 
    hihi = -h²

  7. #7
    Maggo13 Maggo13 ist offline Mitglied
    Registriert seit
    Aug 2009
    Beiträge
    14
    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

  1. Textbox mit variablem Namen ansprechen
    Von Be19 im Forum Visual Basic 6.0
    Antworten: 4
    Letzter Beitrag: 05.08.10, 13:31
  2. DataGridView mit Namen ansprechen und Datasource festlegen
    Von deusfalsus im Forum .NET Windows Forms
    Antworten: 1
    Letzter Beitrag: 10.08.08, 13:13
  3. Dynamisch erstelltes DataGridView mit Namen ansprechen
    Von makop im Forum .NET Windows Forms
    Antworten: 2
    Letzter Beitrag: 12.09.07, 15:07
  4. array über namen ansprechen
    Von Eaden im Forum PHP
    Antworten: 3
    Letzter Beitrag: 29.04.05, 10:14
  5. Link über namen ansprechen
    Von Layna im Forum PHP
    Antworten: 1
    Letzter Beitrag: 27.06.04, 21:59